mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-12-07 06:14:24 +00:00
337 lines
6.9 KiB
Bash
Executable File
337 lines
6.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
base_dir="`pwd`/jquery-ui-release"
|
|
repo_dir="$base_dir/jquery-ui"
|
|
release_dir="$repo_dir/build/release"
|
|
|
|
github_repo="git@github.com:jquery/jquery-ui.git"
|
|
remote_cmd="ssh jqadmin@ui-dev.jquery.com /srv/dev.jqueryui.com/prepare-release"
|
|
|
|
|
|
|
|
#
|
|
# Setup environment
|
|
#
|
|
|
|
echo
|
|
echo "--------------------------"
|
|
echo "| SETTING UP ENVIRONMENT |"
|
|
echo "--------------------------"
|
|
echo
|
|
|
|
mkdir $base_dir
|
|
cd $base_dir
|
|
|
|
echo "Cloning repo from $github_repo..."
|
|
git clone $github_repo
|
|
cd $repo_dir
|
|
|
|
echo
|
|
echo "Environment setup complete."
|
|
echo
|
|
|
|
|
|
|
|
#
|
|
# Figure out which versions we're dealing with
|
|
#
|
|
|
|
echo
|
|
echo "------------------------"
|
|
echo "| CALCULATING VERSIONS |"
|
|
echo "------------------------"
|
|
echo
|
|
|
|
# NOTE: this will be different for minor and major releases
|
|
version=`$remote_cmd/get-latest-version`
|
|
major_minor=${version%.*}
|
|
point=${version##*.}
|
|
version_new="${major_minor}.$(($point + 1))"
|
|
version_next=`cat version.txt`
|
|
|
|
echo "We are going from $version to $version_new."
|
|
echo "version.txt will be set to $version_next when complete."
|
|
echo "Press enter to continue, or ctrl+c to cancel."
|
|
read
|
|
|
|
|
|
#
|
|
# Generate shell for changelog
|
|
#
|
|
|
|
echo
|
|
echo "------------------------"
|
|
echo "| GENERATING CHANGELOG |"
|
|
echo "------------------------"
|
|
echo
|
|
|
|
echo "Creating shell for changelog..."
|
|
changelog_url="http:\/\/docs.jquery.com\/action\/edit\/UI\/Changelog\/$version_new"
|
|
`sed "s/CHANGELOG_URL/$changelog_url/" <$release_dir/changelog-shell >$base_dir/changelog`
|
|
|
|
|
|
# find all commits
|
|
echo "Adding commits to changelog..."
|
|
format_ticket='[http://dev.jqueryui.com/ticket/XXXX #XXXX]'
|
|
format_commit='[http://github.com/jquery/jquery-ui/commit/%H %h]'
|
|
format_full="* %s ($format_ticket, $format_commit)"
|
|
git whatchanged $version... --pretty=format:"$format_full" \
|
|
-- ui themes demos build \
|
|
| sed '/^:/ d' \
|
|
| sed '/^$/ d' \
|
|
| sed 's/\(Fixe[sd] #\)\([0-9][0-9]*\)\(.*\)\(XXXX #XXXX\)/Fixed #\2\3\2 #\2/' \
|
|
| LC_ALL='C' sort -f \
|
|
>> $base_dir/changelog
|
|
|
|
# find all fixed tickets
|
|
echo "Adding Trac tickets to changelog..."
|
|
$remote_cmd/generate-changelog >> $base_dir/changelog
|
|
|
|
echo
|
|
echo "Changelog complete."
|
|
echo
|
|
|
|
|
|
|
|
#
|
|
# Generate list of contributors
|
|
#
|
|
|
|
echo
|
|
echo "--------------------------"
|
|
echo "| GATHERING CONTRIBUTORS |"
|
|
echo "--------------------------"
|
|
echo
|
|
|
|
|
|
# find all committers and authors
|
|
echo "Adding commiters and authors..."
|
|
format_contributors='%aN%n%cN'
|
|
git whatchanged $version... --pretty=format:"$format_contributors" \
|
|
| sed '/^:/ d' \
|
|
| sed '/^$/ d' \
|
|
> $base_dir/thankyou
|
|
|
|
# find all reporters and commenters from Trac
|
|
echo "Adding reporters and commenters from Trac..."
|
|
$remote_cmd/generate-contributors >> $base_dir/thankyou
|
|
|
|
# sort names
|
|
echo "Sorting contributors..."
|
|
LC_ALL='C' sort -f $base_dir/thankyou | uniq > $base_dir/_thankyou
|
|
mv $base_dir/_thankyou $base_dir/thankyou
|
|
|
|
# find all people that were thanked
|
|
echo "Adding people thanked in commits..."
|
|
git whatchanged $version... \
|
|
| grep -i thank \
|
|
>> $base_dir/thankyou
|
|
|
|
echo
|
|
echo "Find contributors from duplicates of fixed tickets and add them to:"
|
|
echo "$base_dir/thankyou"
|
|
echo "Press enter when done."
|
|
read
|
|
|
|
echo
|
|
echo "Contributors list complete."
|
|
echo
|
|
|
|
|
|
|
|
#
|
|
# Update version
|
|
#
|
|
|
|
echo
|
|
echo "--------------------"
|
|
echo "| UPDATING VERSION |"
|
|
echo "--------------------"
|
|
echo
|
|
|
|
echo "Updating version.txt to $version_new..."
|
|
echo $version_new > version.txt
|
|
|
|
git commit -a -m "Tagging the $version_new release."
|
|
version_new_time=`git log -1 --pretty=format:"%ad"`
|
|
echo "Committed version.txt at $version_new_time..."
|
|
|
|
echo "Tagging $version_new..."
|
|
git tag $version_new
|
|
|
|
echo "Updating version.txt to $version_next..."
|
|
echo $version_next > version.txt
|
|
|
|
git commit -a -m "Updating the master version to $version_next"
|
|
echo "Committed version.txt..."
|
|
|
|
echo
|
|
echo "Version update complete."
|
|
echo
|
|
|
|
|
|
|
|
#
|
|
# Push to GitHub
|
|
#
|
|
|
|
echo
|
|
echo "---------------------"
|
|
echo "| PUSHING TO GITHUB |"
|
|
echo "---------------------"
|
|
echo
|
|
|
|
echo "Please review the output and generated files as a sanity check."
|
|
echo "Press enter to continue or ctrl+c to abort."
|
|
read
|
|
|
|
git push
|
|
git push --tags
|
|
|
|
echo
|
|
echo "Push to GitHub complete."
|
|
echo
|
|
|
|
|
|
|
|
#
|
|
# Update Trac
|
|
#
|
|
|
|
echo
|
|
echo "-----------------"
|
|
echo "| UPDATING TRAC |"
|
|
echo "-----------------"
|
|
echo
|
|
|
|
# TODO: automate this
|
|
# NOTE: this will be different for minor and major releases
|
|
milestone=`$remote_cmd/get-latest-milestone`
|
|
|
|
# Create new milestrone and version
|
|
echo "$version_new was tagged at $version_new_time."
|
|
echo "Create and close the $version_new Milestone with the above date and time."
|
|
echo "Create the $version_new Version with the above date and time."
|
|
echo "Press enter when done."
|
|
read
|
|
|
|
# Update milestone for all fixed tickets
|
|
echo "Change all $milestone fixed tickets to $version_new."
|
|
echo "Press enter when done."
|
|
read
|
|
|
|
echo
|
|
echo "Trac updates complete."
|
|
echo
|
|
|
|
|
|
|
|
#
|
|
# Build jQuery UI
|
|
#
|
|
|
|
echo
|
|
echo "----------------------"
|
|
echo "| BUILDING JQUERY UI |"
|
|
echo "----------------------"
|
|
echo
|
|
|
|
# check out the tagged version
|
|
echo "Checking out $version_new..."
|
|
git checkout $version_new
|
|
cd build
|
|
|
|
# Update the link to the docs (never contains the patch version)
|
|
echo "Updating URL for API docs..."
|
|
sed "s/UI\/API\/\${release\.version}/UI\/API\/$major_minor/" build.xml >build.xml.tmp
|
|
mv build.xml.tmp build.xml
|
|
|
|
# Run the build
|
|
echo "Running build..."
|
|
ant
|
|
|
|
echo
|
|
echo "Build complete."
|
|
echo
|
|
|
|
|
|
|
|
#
|
|
# Upload zip to Google Code
|
|
#
|
|
|
|
echo
|
|
echo "----------------------"
|
|
echo "| UPDATE GOOGLE CODE |"
|
|
echo "----------------------"
|
|
echo
|
|
|
|
echo "Upload zip to Google Code."
|
|
echo " http://code.google.com/p/jquery-ui/downloads/entry"
|
|
echo " Summary: jQuery UI $version_new (Source, demos, docs, themes, tests) STABLE"
|
|
echo " Labels: Featured, Type-Source, OpSys-All"
|
|
echo "Modify the previous release to no longer say STABLE at the end."
|
|
echo "Remove the featured label from the previous release."
|
|
echo "Press enter when done."
|
|
read
|
|
|
|
echo
|
|
echo "Google Code update complete."
|
|
echo
|
|
|
|
|
|
|
|
#
|
|
# Update SVN
|
|
#
|
|
|
|
echo
|
|
echo "----------------"
|
|
echo "| UPDATING SVN |"
|
|
echo "----------------"
|
|
echo
|
|
|
|
cd $base_dir
|
|
mkdir svn
|
|
cd svn
|
|
|
|
echo "Checking out SVN tags..."
|
|
svn co --depth immediates https://jquery-ui.googlecode.com/svn/tags
|
|
cd tags
|
|
|
|
echo "Unzipping build into tags/$version_new..."
|
|
unzip $repo_dir/build/dist/jquery-ui-$version_new.zip
|
|
mv jquery-ui-$version_new $version_new
|
|
|
|
echo "Adding files to SVN..."
|
|
svn add $version_new
|
|
|
|
echo "Setting svn:mime-type..."
|
|
find $version_new -name \*.js -exec svn propset svn:mime-type text/javascript {} \;
|
|
find $version_new -name \*.css -exec svn propset svn:mime-type text/css {} \;
|
|
find $version_new -name \*.html -exec svn propset svn:mime-type text/html {} \;
|
|
find $version_new -name \*.png -exec svn propset svn:mime-type image/png {} \;
|
|
find $version_new -name \*.gif -exec svn propset svn:mime-type image/gif {} \;
|
|
|
|
# TODO: commit
|
|
echo
|
|
echo "svn commit with the following message:"
|
|
echo "Created $version_new tag from http://jquery-ui.googlecode.com/files/jquery-ui-$version_new.zip"
|
|
echo "Press enter when done."
|
|
read
|
|
|
|
echo
|
|
echo "SVN update complete."
|
|
echo
|
|
|
|
|
|
|
|
#
|
|
# Generate themes
|
|
#
|
|
|
|
|
|
|
|
|
|
# ruby -e 'puts File.read("thankyou").split("\n").join(", ")' > thankyou2
|