Lines Matching +full:- +full:release
2 #===-- tag.sh - Tag the LLVM release candidates ----------------------------===#
6 # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
8 #===------------------------------------------------------------------------===#
10 # Create branches and release candidates for the LLVM release.
12 #===------------------------------------------------------------------------===#
14 set -e
16 …olt clang cmake compiler-rt libcxx libcxxabi libclc clang-tools-extra polly lldb lld openmp libunw…
18 release=""
22 template='${PROJECT}-${RELEASE}${RC}.src.tar.xz'
28 Usage: $(basename $0) [-release|--release <major>.<minor>.<patch>]
29 [-rc|--rc <num>]
30 [-final|--final]
31 [-git-ref|--git-ref <git-ref>]
32 [-template|--template <template>]
36 -release | --release <major>.<minor>.<patch> The version number of the release
37 -rc | --rc <num> The release candidate number
38 …-final | --final When provided, this option will disable the rc fl…
39 …-git-ref | --git-ref <git-ref> (optional) Use <git-ref> to determine the release…
40 …-template | --template <template> (optional) Possible placeholders: \$PROJECT \$YYY…
44 that are being generated (given that you don't touch --template).
46 $(echo "$projects "| sed 's/\([a-z-]\+\) / * \1-<RELEASE><RC>.src.tar.xz \n/g')
50 * llvm-project-<RELEASE><RC>.src.tar.xz (the complete LLVM source project)
51 * test-suite-<RELEASE><RC>.src.tar.xz (only when not using --git-ref)
55 * llvm-release-<YYYYMMDD>.txt (contains the <RELEASE> as a text)
56 …* llvm-rc-<YYYYMMDD>.txt (contains the rc version passed to the invocation of $(basena…
57 * llvm-git-revision-<YYYYMMDD>.txt (contains the current git revision sha1)
61 * <RELEASE> -> 13.0.0
62 * <YYYYMMDD> -> 20210414 (the date when executing this script)
63 * <RC> -> rc4 (will be empty when using --git-ref)
67 $(basename $0) --git-ref upstream/main --template '\${PROJECT}-\${YYYYMMDD}.src.tar.xz'
73 export PROJECT=$1 YYYYMMDD=$yyyymmdd RC=$rc RELEASE=$release GIT_REF=$git_rev
74 basename $(echo $template | envsubst '$PROJECT $RELEASE $RC $YYYYMMDD $GIT_REF')
75 unset PROJECT YYYYMMDD RC RELEASE GIT_REF
79 local tag="llvmorg-$release"
81 llvm_src_dir=$(readlink -f $(dirname "$(readlink -f "$0")")/../../..)
82 [ -d $llvm_src_dir/.git ] || ( echo "No git repository at $llvm_src_dir" ; exit 1 )
84 # Determine the release by fetching the version from LLVM's CMakeLists.txt
86 if [ -n "$snapshot" ]; then
87 …release=$(git -C $llvm_src_dir show $snapshot:cmake/Modules/LLVMVersion.cmake | grep -ioP 'set\(\s…
90 tag="llvmorg-$release"
95 tag="$tag-$rc"
100 echo "Creating tarball for llvm-project ..."
103 [ -n "$snapshot" ] && tree_id="$snapshot"
106 # This might be a surprise but a package like clang or compiler-rt don't
108 # llvm-version*-<YYYYMMDD> and llvm-git*-<YYYYMMDD> files.
109 git_rev=$(git rev-parse $tree_id)
111 echo "$release" > $target_dir/llvm-release-$yyyymmdd.txt
112 echo "$rc" > $target_dir/llvm-rc-$yyyymmdd.txt
113 echo "$git_rev" > $target_dir/llvm-git-revision-$yyyymmdd.txt
115 …git archive --prefix=llvm-project-$release$rc.src/ $tree_id . | xz -T0 >$target_dir/$(template_fil…
118 if [ -z "$snapshot" ]; then
119 if [ ! -d test-suite-$release$rc.src ]; then
120 echo "Fetching LLVM test-suite source ..."
121 mkdir -p test-suite-$release$rc.src
122 curl -L https://github.com/llvm/test-suite/archive/$tag.tar.gz | \
123 tar -C test-suite-$release$rc.src --strip-components=1 -xzf -
125 echo "Creating tarball for test-suite ..."
126 tar --sort=name --owner=0 --group=0 \
127 --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime \
128 -cJf test-suite-$release$rc.src.tar.xz test-suite-$release$rc.src
134 …git archive --prefix=$proj-$release$rc.src/ $tree_id . | xz -T0 >$target_dir/$(template_file $proj)
139 while [ $# -gt 0 ]; do
141 -release | --release )
143 release=$1
145 -rc | --rc )
149 -final | --final )
152 -git-ref | --git-ref )
156 -template | --template )
160 -h | -help | --help )
173 if [ -n "$snapshot" ]; then
174 if [[ "$rc" != "" || "$release" != "" ]]; then
175 echo "error: must not specify -rc or -release when creating a snapshot"
178 elif [ -z "$release" ]; then
179 echo "error: need to specify a release version"