-
Notifications
You must be signed in to change notification settings - Fork 610
Maintenance: update snapshot script for git #24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -10,40 +10,34 @@ | |
| echo "RUN: $0" | ||
| if [ $# -lt 1 ]; then | ||
| echo "Usage: $0 [branch]" | ||
| echo "Where [branch] is the path under /bzr/ to the branch to snapshot." | ||
| echo "Where [branch] is the name of the branch to snapshot." | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would replace Creating a snapshot of a tagged version or a commit is a perfectly reasonable thing to do. This minor change does not affect the script code much. N.B. Tree-ish is documented in "man git". Your |
||
| exit 1 | ||
| fi | ||
| # VCS details | ||
| module=squid3 | ||
| BZRROOT=${BZRROOT:-/bzr} | ||
|
|
||
| # generate a tarball name from the branch ($1) note that trunk is at | ||
| # /bzr/trunk, but we call it 3.HEAD for consistency with CVS (squid 2.x), and | ||
| # branches are in /bzr/branches/ but we don't want 'branches/' in the tarball | ||
| # name so we strip that. | ||
| branchpath=${1:-trunk} | ||
| tag=${2:-`basename $branchpath`} | ||
|
|
||
| # generate a tarball name from the branch ($1) | ||
| branch=${1:-master} | ||
| startdir=${PWD} | ||
| date=`env TZ=GMT date +%Y%m%d` | ||
|
|
||
| tmpdir=${TMPDIR:-${PWD}}/${module}-${tag}-mksnapshot | ||
| tmpdir=${TMPDIR:-${PWD}}/squid-${branch}-mksnapshot/ | ||
|
|
||
| rm -rf ${tmpdir} | ||
| trap "echo FAIL-BUILD_${VERSION} ; rm -rf ${tmpdir}" 0 | ||
| mkdir ${tmpdir} | ||
|
|
||
| rm -f ${tag}.out | ||
| bzr export ${tmpdir} ${BZRROOT}/${module}/${branchpath} || exit 1 | ||
| rm -f ${branch}.out | ||
| (git archive --format=tar ${branch} | tar -xC ${tmpdir}) || exit 1 | ||
| if [ ! -f ${tmpdir}/configure ] && [ -f ${tmpdir}/configure.ac ]; then | ||
| sh -c "cd ${tmpdir} && ./bootstrap.sh" | ||
| fi | ||
| if [ ! -f ${tmpdir}/configure ]; then | ||
| echo "ERROR! Tag ${tag} not found in ${module}" | ||
| echo "ERROR! Branch ${branch} not found." | ||
| fi | ||
|
|
||
| cd ${tmpdir} | ||
| revision=`bzr revno ${BZRROOT}/${module}/${branchpath}` | ||
| revision=`git rev-parse --short ${branch}` | ||
| suffix="${date}-r${revision}" | ||
| eval `grep "^ *PACKAGE_VERSION=" configure | sed -e 's/-BZR//' | sed -e 's/PACKAGE_//'` | ||
| eval `grep "^ *PACKAGE_VERSION=" configure | sed -e 's/-VCS//' | sed -e 's/PACKAGE_//'` | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is one of the places where it would be better to extract the "version" information from git rather than essentially expect all git branches to change |
||
| eval `grep "^ *PACKAGE_TARNAME=" configure | sed -e 's/_TARNAME//'` | ||
| ed -s configure.ac <<EOS | ||
| g/${VERSION}-[A-Z]*/ s//${VERSION}-${suffix}/ | ||
|
|
@@ -57,13 +51,13 @@ EOS | |
| echo "STATE..." | ||
| echo "PACKAGE: ${PACKAGE}" | ||
| echo "VERSION: ${VERSION}" | ||
| echo "TAG: ${tag}" | ||
| echo "BRANCH: ${branch}" | ||
| echo "REVISION: ${revision}" | ||
| echo "STARTDIR: ${startdir}" | ||
| echo "TMPDIR: ${tmpdir}" | ||
|
|
||
| ## Ignore extra build layers. General features building is sufficient for snapshot release. | ||
| ./test-builds.sh --cleanup layer-00-default layer-01-minimal layer-02-maximus || exit 1 | ||
| ./test-builds.sh --cleanup layer-00-bootstrap layer-00-default layer-01-minimal layer-02-maximus || exit 1 | ||
| ./configure --silent --enable-build-info="DATE: ${date} REVISION: ${revision}" --enable-translation | ||
| make -s dist-all | ||
|
|
||
|
|
@@ -86,12 +80,12 @@ echo "Preparing to publish: ${tmpdir}/${PACKAGE}-${VERSION}-${suffix}.tar.* ..." | |
| #echo "BUILT TARS: " ; ls -1 ${tmpdir}/*.tar.* || true | ||
|
|
||
| cp -p ${tmpdir}/${PACKAGE}-${VERSION}-${suffix}.tar.gz . | ||
| echo ${PACKAGE}-${VERSION}-${suffix}.tar.gz >>${tag}.out | ||
| echo ${PACKAGE}-${VERSION}-${suffix}.tar.gz >>${branch}.out | ||
| cp -p ${tmpdir}/${PACKAGE}-${VERSION}-${suffix}.tar.bz2 . | ||
| echo ${PACKAGE}-${VERSION}-${suffix}.tar.bz2 >>${tag}.out | ||
| echo ${PACKAGE}-${VERSION}-${suffix}.tar.bz2 >>${branch}.out | ||
| if [ -f ${tmpdir}/${PACKAGE}-${VERSION}-${suffix}.diff ]; then | ||
| cp -p ${tmpdir}/${PACKAGE}-${VERSION}-${suffix}.diff . | ||
| echo ${PACKAGE}-${VERSION}-${suffix}.diff >>${tag}.out | ||
| echo ${PACKAGE}-${VERSION}-${suffix}.diff >>${branch}.out | ||
| fi | ||
|
|
||
| # latest Squid 'make' builds a RELEASENOTES.html at top directory | ||
|
|
@@ -102,25 +96,25 @@ if [ ! -f ${relnotes} ]; then | |
| fi | ||
| if [ -f ${relnotes} ]; then | ||
| cp -p ${relnotes} ${PACKAGE}-${VERSION}-${suffix}-RELEASENOTES.html | ||
| echo ${PACKAGE}-${VERSION}-${suffix}-RELEASENOTES.html >>${tag}.out | ||
| echo ${PACKAGE}-${VERSION}-${suffix}-RELEASENOTES.html >>${branch}.out | ||
| ed -s ${PACKAGE}-${VERSION}-${suffix}-RELEASENOTES.html <<EOF | ||
| g/"ChangeLog"/ s//"${PACKAGE}-${VERSION}-${suffix}-ChangeLog.txt"/g | ||
| w | ||
| EOF | ||
| fi | ||
| cp -p ${tmpdir}/ChangeLog ${PACKAGE}-${VERSION}-${suffix}-ChangeLog.txt | ||
| echo ${PACKAGE}-${VERSION}-${suffix}-ChangeLog.txt >>${tag}.out | ||
| echo ${PACKAGE}-${VERSION}-${suffix}-ChangeLog.txt >>${branch}.out | ||
|
|
||
| # Generate Configuration Manual HTML | ||
| if [ -x ${tmpdir}/scripts/www/build-cfg-help.pl ]; then | ||
| make -C ${tmpdir}/src cf.data | ||
| mkdir -p ${tmpdir}/doc/cfgman | ||
| ${tmpdir}/scripts/www/build-cfg-help.pl --version ${VERSION} -o ${tmpdir}/doc/cfgman ${tmpdir}/src/cf.data | ||
| sh -c "cd ${tmpdir}/doc/cfgman && tar -zcf ${PWD}/${PACKAGE}-${VERSION}-${suffix}-cfgman.tar.gz *" | ||
| echo ${PACKAGE}-${VERSION}-${suffix}-cfgman.tar.gz >>${tag}.out | ||
| echo ${PACKAGE}-${VERSION}-${suffix}-cfgman.tar.gz >>${branch}.out | ||
| ${tmpdir}/scripts/www/build-cfg-help.pl --version ${VERSION} -o ${PACKAGE}-${VERSION}-${suffix}-cfgman.html -f singlehtml ${tmpdir}/src/cf.data | ||
| gzip -f -9 ${PACKAGE}-${VERSION}-${suffix}-cfgman.html | ||
| echo ${PACKAGE}-${VERSION}-${suffix}-cfgman.html.gz >>${tag}.out | ||
| echo ${PACKAGE}-${VERSION}-${suffix}-cfgman.html.gz >>${branch}.out | ||
| fi | ||
|
|
||
| # Collate Manual Pages and generate HTML versions | ||
|
|
@@ -136,10 +130,10 @@ if (groff --help >/dev/null); then | |
| cat ${f} | groff -E -Thtml -mandoc >${f}.html | ||
| done | ||
| sh -c "cd ${tmpdir}/doc/manuals && tar -zcf ${PWD}/${PACKAGE}-${VERSION}-${suffix}-manuals.tar.gz *.html *.1 *.8" | ||
| echo ${PACKAGE}-${VERSION}-${suffix}-manuals.tar.gz >>${tag}.out | ||
| echo ${PACKAGE}-${VERSION}-${suffix}-manuals.tar.gz >>${branch}.out | ||
| fi | ||
|
|
||
| # Generate language-pack tarballs | ||
| # NP: Only useful on development branch | ||
| sh -c "cd ${tmpdir}/errors && tar -zcf ${PWD}/${PACKAGE}-${VERSION}-${suffix}-langpack.tar.gz ./*/* ./alias* ./TRANSLATORS ./COPYRIGHT " | ||
| echo ${PACKAGE}-${VERSION}-${suffix}-langpack.tar.gz >>${tag}.out | ||
| echo ${PACKAGE}-${VERSION}-${suffix}-langpack.tar.gz >>${branch}.out | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is now master, not the v5.0 branch. Would it be possible to say "master" instead of "5.0.0" here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The snapshots from master branch are alpha releases. The alpha version is currently 5.0.0-*. When that changes to v6 there will be explicit commits branching v5 into beta and updating the master to 6.0.0.
The design of snapshot version numeric is to enable clean integration with beta and stable release numberings. So package versioning systems in our downstream distros can handle custom builds and identify builds of v5 alphas from v4 alphas, etc. Many of them have automation performing "a new version is available" notifications to both packagers and administrators based on these numerics.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I doubt that calling master code v5.0.0 is a good idea. Yes, it solves some problems, but it also creates others.
However, I am not going to make that disagreement a blocking issue or waste your time discussing pros and cons. If you insist on assigning a numeric version to the master code in maintenance scripts and configure.ac, I can live with that as long as we have a proper master branch (which we now do).