Release Process
//adobe_source_libraries/adobe/config.hpp
# REVISIT (sparent) : Later steps assume that bjam is pre-built and path set - should not assume that.export ADOBE_ROOT=`p4 where //adobe_platform_libraries/... | perl -MFile::Basename -ane 'print dirname dirname $F[2]'`
//adobe_source_libraries/adobe/config.hpp
CONFIG=adobe_source_libraries/adobe/config.hppp4 edit //$CONFIG$EDITOR $ADOBE_ROOT/$CONFIGp4 submit
# win users can ssh into their mac machine# this step assumes that bjam is installedexport ADOBE_ROOT=`p4 where //adobe_platform_libraries/... | perl -MFile::Basename -ane 'print dirname dirname $F[2]'` && \cd $ADOBE_ROOT/adobe_platform_libraries && \bjam -j3 debug release && \cd $ADOBE_ROOT/adobe_platform_libraries/xcode_ide/begin.xcodeproj && \xcodebuild -configuration Debug && \xcodebuild -configuration Release && \#also build 64bit ASL debug/release && \cd $ADOBE_ROOT/adobe_source_libraries && \bjam -j3 debug address-model=64 && \bjam -j3 release address-model=64 architecture=combined#end
# mac users can ssh into their windows machine # this step assumes that bjam is installed, in path, that perl is installed properly # and that gcc-4.3.0 is also installed and recognized by bjam export ADOBE_ROOT=`p4 where //adobe_platform_libraries/... | perl -MFile::Basename -ane 'print dirname dirname $F[2]'` && \ perl $ADOBE_ROOT/adobe_platform_libraries/tools/build_win.pl## on a vista 64 system: export ADOBE_ROOT=`p4 where //adobe_platform_libraries/... | perl -MFile::Basename -ane 'print dirname dirname $F[2]'` && \ cd $ADOBE_ROOT/adobe_source_libraries && \ bjam -j2 debug release address-model=64 architecture=x86 #end
## skip this whole section if boost is unchanged## edit the next four fields## REVISIT (mmarcus) : Calculate these from current date and $ADOBE_ROOT/adobe_source_libraries/adobe/config.hpp## this assumes that perl is working properly and that the required cpan modules have been installed##BOOST_VERSION should be incremented by one from the previous VersionInfo.xml version_build fieldBOOST_VERSION=2ASL_DATE=20070503LDAP_NAME=ldap_usernameLDAP_PASSWD=passwdcd $ADOBE_ROOT/boost_libraries/adobe_informationp4 edit VersionInfo.xmlperl $ADOBE_ROOT/adobe_source_libraries/tools/boost_codex.pl $BOOST_VERSION $BOOST_DATEperl $ADOBE_ROOT/adobe_source_libraries/tools/post_boost_build.pl $BOOST_VERSION $LDAP_NAME $LDAP_PASSWDp4 submit
Output should be two key/value pairs. Check the results at the Boost Codex Page (http://matrix.corp.adobe.com/Codex/webcontent/index.jsp?action=build_history&product=Boost&product_version=1_34_1)
## skip this whole section if intel tbb is unchanged## edit the next four fields## REVISIT (mmarcus) : Calculate these from current date and $ADOBE_ROOT/adobe_source_libraries/adobe/config.hpp## this assumes that perl is working properly and that the required cpan modules have been installed##INTEL_TBB_VERSION should be incremented by one from the previous VersionInfo.xml version_build fieldINTEL_TBB_VERSION=2ASL_DATE=20070503LDAP_NAME=ldap_usernameLDAP_PASSWD=passwdcd $ADOBE_ROOT/intel_tbb_libraries/adobe_informationp4 edit VersionInfo.xmlperl $ADOBE_ROOT/adobe_source_libraries/tools/intel_tbb_codex.pl $INTEL_TBB_VERSION $ASL_DATEperl $ADOBE_ROOT/adobe_source_libraries/tools/post_intel_tbb_build.pl $INTEL_TBB_VERSION $LDAP_NAME $LDAP_PASSWDp4 submit
Output should be two key/value pairs. Check the results at the Intel Thread Building Block Codex Page (http://matrix.corp.adobe.com/Codex/webcontent/index.jsp?action=build_history&product=Intel%20Thread%20Building%20Blocks&product_version=tbb20_014oss)
$ADOBE_ROOT/adobe_platform_libraries/tools/update_adobe_codexes.pl date (format: 20080128) ldap-username ldap-passwordp4 submit
expected output from the first command:
building codexes for version 1.0.35executing p4 edit /adobe_root/adobe_source_libraries/tools/VersionInfo.xml in /adobe_root/adobe_source_libraries/tools//adobe_source_libraries/tools/VersionInfo.xml#5 - currently opened for edit1executing perl -w asl_codex.pl 1.0.35 20080128 adobe_source_libraries_1.0.35 in /adobe_root/adobe_source_libraries/toolsexecuting perl -w post_build.pl 1.0.35 mmarcus Brea%m14 in /adobe_root/adobe_source_libraries/toolskey: result, value: 97281.key: result, value: 97282.executing p4 edit VersionInfo.xml in /adobe_root/adobe_platform_libraries/tools//adobe_platform_libraries/tools/VersionInfo.xml#5 - currently opened for editexecuting perl -w apl_codex.pl 1.0.35 20080128 adobe_platform_libraries_1.0.35 in /adobe_root/adobe_platform_libraries/toolsexecuting perl -w post_build.pl 1.0.35 mmarcus Brea%m14 in /adobe_root/adobe_platform_libraries/toolskey: result, value: 97283.key: result, value: 97284.
$ADOBE_ROOT/adobe_source_libraries/read_me.html
with current version numbers for “automated build” instructions.$ADOBE_ROOT/adobe_source_libraries/tools/patch_boost.sh
if a new version of boost has been released. Also update boost version numbers in $ADOBE_ROOT/adobe_source_libraries/documentation/html/asl_readme.html and$ADOBE_ROOT/adobe_platform_libraries/tools/verify.sh
. Furthermore, make sure that the boost patch file name is updated, e.g.$ADOBE_ROOT/adobe_source_libraries/tools/boost_1_44_0_patches.txt
.$ADOBE_ROOT/adobe_source_libraries/tools/boost_1_44_0_patches.txt
. For example, under win32, generation of the patch file might look like:## given a clean copy of boost in $ADOBE_ROOT/diffable_boost_1_44_0cd $ADOBE_ROOT/adobe_source_librariesdiff -wur --unidirectional-new-file -x status -x adobe_information -xp4config -x bin.ntx86 -x bin.cygwinx86 -x bin.v2 ../diffable_boost_1_44_0 ../boost_libraries > ./tools/boost_1_44_0_patches.txt
Note, however, that the diffs for boost filesystem’s wrong_line_end test may be spurious (depending on perforce line ending settings). As of 9/2008 that file hasnot been patched. Also be sure not to pick up p4config files or to add them to p4. Note: if boost patches was updated externally by the opensource community then those patches should be applied to the internal boost first.
p4 changes -l -m N //adobe_source_libraries/... //adobe_platform_libraries/...
is helpful#### editing the news file### open the release notesp4 changes -l -m 150 //adobe_source_libraries/... //adobe_platform_libraries| bbeditRELEASE_NOTES=//adobe_source_libraries/release_notes.txtp4 edit $RELEASE_NOTESbbedit `p4 where $RELEASE_NOTES | sed -e 's/[^ ]* [^ ]* //'`### open and edit the news fileNEWS=//adobe_source_libraries/documentation/structure/news.doxp4 edit $NEWSbbedit `p4 where $NEWS | sed -e 's/[^ ]* [^ ]* //'`# update the news file based on the release notes.p4 submit#### updating the documentationcd $ADOBE_ROOT/adobe_source_libraries/documentation/html$ADOBE_ROOT/adobe_source_libraries/tools/doc_update.pl### review changes, revert unchanged files, and submitcd htmlexplorer index.htmlp4 submit
p4 integrate -t -i -Dt -Ds -b source_and_platform_releasep4 resolve -atp4 submit
perl $ADOBE_ROOT/adobe_platform_libraries/tools/package_distros.pl
oneach platform (don’t forget to sync on secondary platform first) to create the files in the local directory /distros, for uploading to sourceforge. You will need at least the compressed Begin application from your secondary platform. The other files can be uploaded from your primary platform (as long as your perforce client spec uses LineEndings of “share”). The files to be uploaded areasl_1.0.XX_begin_mac.tgz
(includes app, dependencies, and examples folder–see thepackage_distros.pl
script for details.)asl_1.0.XX_begin_win.zip
(includes app, dependencies, runtime libs, and examples folder–see thepackage_distros.pl
script for details.)asl_1.0.XX_pmeval_mac.tgz
(includes app, and examples folder–see thepackage_distros.pl
script for details.)asl_1.0.XX_pmeval_win.zip
(includes app, runtime libs, and examples folder–see thepackage_distros.pl
script for details.)asl_1.0.XX_net_setup.sh
asl_1.0.XX_net_setup.bat
asl_1.0.XX.tgz
asl_1.0.XX.zip
apl_1.0.XX.tgz
apl_1.0.XX.zip
[Add Release]
next toadobe-source
build the internal docs so you have a complete html/ directory. That is, cd $ADOBE_ROOT/asl_corp/documentation/ p4 edit html/... rm html/*.html # but not the gifs/pdfs doxygen doxyfile p4 add html/* p4 revert -a html/... cd html explorer index.html #if all ok: p4 submit Make a tarball of $ADOBE_ROOT/asl_corp/documentation/html directory: cd $ADOBE_ROOT/asl_corp/documentation rm html.tgz tar -czf html.tgz html FTP that tarball up to the internal doc staging server, with the following information: ftp ihostunix.corp.adobe.com # use LDAP credentials cd /www/isproot/intranet1/corp/stlab bin put html.tgz quit Once the file is uploaded, telnet ihostunix.corp.adobe.com # use LDAP credentials bash ./bin/stlab.sh #remotely expands the tarball and moves the new docs into place.
Info on connecting to the staging server here: http://webops.corp.adobe.com/wiki/index.php/Web-stage_FTP_process
Webpush interface here: https://web-stage.corp.adobe.com/webpush/stlab.adobe.com/
#!/bin/bash## Setup the argument componentsexport masterDir="/data/www/sites/stlab-staging.adobe.com/htdocs"export rsync="/bin/rsync"export ssh="--rsh=/usr/bin/ssh"export recursive="--recursive"export preserve="--times -og --links"export prog="--progress"export stats="--stats"export delete="--delete"export remoteUser="ldapusername"export server="webprod.macromedia.com"export args="$prog $stats $ssh $recursive $preserve"rsync $args /adobe_root/adobe_source_libraries/documentation/html/ ${remoteUser}@${server}:${masterDir}/
#!/bin/bashcd /www/isproot/intranet1/corp/stlabtar -xzvf html.tgzecho 'changing permissions...'chmod -R a+rx htmlecho 'relocating directories...'mv www www.oldmv html wwwrm -rf www.oldecho 'done!'exit
rsh -l ldapusername ihostunix.corp.adobe.com
stlab.sh is actually a script that lives on the internal documentation staging server. Once the html tarball has been uploaded to the server, run this script to expand the tarball and swap it into place, removing the old documentation directory upon completion.
p4 integrate -t -i -Dt -Ds -b source_and_platform_release p4 resolve -at p4 submit
#eg to go from 1.0.35 to 1.0.36: p4 label -t adobe_source_1_0_35 adobe_source_1_0_36 # in the ensuing dialog we add a revision field and insert the head rev, e.g.: Revision: @4082
Check that it worked by examining the label in P4V, comparing it to the previous label
##### branch spec for integrating adobe portion of submission to source_libraryp4 sync# update the version numberp4 edit ~/development/projects/submission/adobe/config.hppbbedit ~/development/projects/submission/adobe/config.hpp# remove the old documentationrm -r ~/development/projects/submission/adobe/documentation/external/html/*rm -r ~/development/projects/submission/adobe/documentation/internal/html/*p4 delete //submission/adobe/documentation/external/html/...p4 delete //submission/adobe/documentation/internal/html/...p4 submit# build the docs and check themcd ~/development/projects/submission/adobe/documentation/externaldoxygen documentation.doxygenbbedit ./doxygen_support_files/doxygen_warn_log.txtopen -a Safari html/index.htmlcd ~/development/projects/submission/adobe/documentation/internaldoxygen adobe.doxbbedit doxygen_warn_log.txtopen -a Safari html/index.html# add the built documentationp4 add ~/development/projects/submission/adobe/documentation/external/html/*p4 add ~/development/projects/submission/adobe/documentation/internal/html/*p4 submit# check the branch specp4 branch adobe_releasep4 integrate -1 -t -d -i -b adobe_release | bbeditp4 resolve -at | bbeditp4 submit | bbedit# update the labelp4 label -t adobe_source_1_0_11 adobe_source_1_0_12p4 labelsync -l adobe_source_1_0_12 //source_library/... //submission/... | bbeditp4 label adobe_source_1_0_12 # lock the label# check the buildrm -r ~/development/projects/source_library/*p4 sync -f //source_library/...@adobe_source_1_0_11 | bbedit~/development/projects/source_library/adobe/bin/build.sh