Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Ensure your local 'develop' branch is up-to-date
    Make sure that the path that the source is checked out to does not contain spaces.
  • Create a new remote 'release' branch

    Code Block
    
    git push -u origin develop:releaseX.Y.Z
    
  • Create a new directory, change to it and check out the develop branch.

    Code Block
    
    git clone https://git-wip-us.apache.org/repos/asf/flex-sdk.git .
    
  • Checkout the new release branch with:

    Code Block
    
    git checkout releaseX.Y.Z
    
  • Tag the release

    Code Block
    
    git tag -a apache-flex-sdk-X.Y.ZRC1 -m 'Apache Flex X.Y.Z RC1'
    git push --tags
    

You may also want to use the make_release_branch.sh script:

Code Block

make_release_branch.sh X.Y.Z

Building the Release

  • Build the source and binary packages.

    Code Block
    
    cd build
    ./build_release.sh
    

    The packages can be found in the out subdirectory.

Every time you make a release candidate make sure that there have been no changes to the tagged set of files in particular config files.

This could indicate an issue:

Code Block

git status

# On branch release4.11.0
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   ide/flashbuilder/config/air-config.xml
#	modified:   ide/flashbuilder/config/airmobile-config.xml
  • Check the RAT log in rat.log to make sure no binaries or unlicensed files where inadvertently introduced into the source kit.
  • Other ant targets you may want to become familiar with are source-release, source-package, binary-release, binary-package and rat-check. These are useful if you modify the files in the kit and you want to short circuit some of the build process to test your changes.

Verifying the Kits

  • Verify the asc and md5 signatures for both kits then unzip both the source and binary kits.
    You may also want to use the check_sigs.sh script:

    Code Block
    
    check_sigs.sh X.Y.Z RC
    
  • Verify that the name, version and build number are correct in flex-sdk-description.xml.
  • Verify that the source files in the zip kit have Windows line endings and the source files in the OSX kit has Unix line endings.

    Code Block
    
    cd apache-flex-sdk-X.Y.Z-src
    ant main checkintests
    
  • Verify that the components in the binary kit can be built.

    Code Block
    
    cd apache-flex-sdk-X.Y.Z-bin/frameworks
    ant
    
  • Double-check the spelling and grammar in README, LICENSE and RELEASE_NOTES files.
  • Verify that the SDK can be used with Adobe Flash Builder version 4.6 and 4.7. See ide/flashbuilder/README_integration_with_Adobe_FlashBuilder.txt for the list of checks that Adobe Flash Builder performs on the Apache SDK to ensure compatibility of
    the of the SDK with Flash Builder. You can use ide/flashbuilder/makeApacheFlexForFlashBuilder.sh in either the binary kit or the source kit build with "ant main frameworks-rsls".

...

To manually sign the release copy the Apache script 'sign_and_hash.sh' from the build directory to the out directory.

Code Block

cd build
cp ./sign_and_hash.sh ../out
cd ../out
./sign_and_hash.sh

...

You may also want to use the deploy_release_candidate.sh script:

Code Block

deploy_release_candidate.sh X.Y.Z RC

...

  • Remove the release candidate from the staging area.
  • Make required changes
  • Tag the new release candidate

    Code Block
    
    git tag -a apache-flex-sdk-X.Y.ZRCx -m 'Apache Flex X.Y.Z RCx'
    git push --tags
    

    You may also want to use the tag_release_candidate.sh script:

    Code Block
    
    tag_release_candidate.sh X.Y.Z RC
    

...

Tag the release in git, the tag name and commit message with the relevant release information. You must ensure the source in the package matches the tag.

Code Block

git tag -a apache-flex-sdk-X.Y.Z -m 'Apache Flex X.Y.Z'
git push --tags

You may also want to use the tag_release.sh script:

Code Block

tag_release.sh X.Y.Z

Merging back into develop and trunk

To merge the released code back into the develop branch.

  • Check out the develop branch

    Code Block
    
    git checkout develop
    
  • Test merging the release branch into the develop branch

    Code Block
    
    git merge --no-commit --no-ff releaseX.Y.Z
    
  • If no issues merge the release branch into the develop branch

    Code Block
    
    git merge --no-ff releaseX.Y.Z
    
  • Check merged changes back into the remote develop branch

    Code Block
    
    git push 
    

To merge the released code back into the master branch, repeat the above steps using 'master' instead of 'develop'.

...

  • Publish the release. Copying the layout for the previous X.Y.Z version, make a new subdirectory in SVN repository https://dist.apache.org/repos/dist/release/flex for the release and copy over the README, RELEASE_NOTES and artifacts.
  • Only remove the previous version once the mirrors have caught up (24 hours) and after the installer is updated to use the new release.
  • Update JIRA. Go to the Admin section on the Flex JIRA and mark Flex X.Y.Z as released. Create the next version if that has not already been done. You may need the help of a JIRA administrator to do this.
  • Update the installer configuration.
  • Update Flex web site were required:
  • Update and publish the doap_Flex.rdf file
  • Send separate [ANNOUNCEMENT] emails using your apache.org email address, preferably signing the email with the same KEY you used to sign the release. Note: Thunderbird with Enigmail for OpenPGP seems to be the easiest to configure on the Mac. AppleMail with GPGMail is another alternative. If you are not subscribed to a list with your apache address your email the email has to be accepted by the moderator of the list before it will get posted. Make sure the email is plain text and not HTML or it may be marked as spam and rejected.
    • users@flex.a.o
    • dev@flex.a.o
    • announce@a.o
  • Update the Apache Flex home page and the Apache Flex blog with the news. Encourage people to tweet about the release.
  • Update the Flex version number to be the next likely version in the code - (build.properties, many Version.as files, FlexVersion.as, MxmlConfiguration.java, VersionInfo.java). Use build/set-version.xml. See header for usage.

...