How do you know what Flex version you are running?

Oftentimes, when you are keeping track of a bug and it gets fixed, you will see a comment that says something like “confirmed in build 136” or “changelist 193935”. Since the bug is marked fixed, you assume that it is fixed when you download the latest beta or one of the nightly Flex SDK builds. However, to your dismay, the bug doesn’t seem to be fixed. You wonder… am I running the right version? What version number am I running?

To be clear, there are two different version numbers to think about. There is a version number for Flex Builder (the Flex IDE), and a version for the Flex SDK (the development kit that includes the compiler). If you are tracking a FB-XXXX bug, then, you will be concerned with Flex Builder versions. If you are tracking a Flex SDK bug (SDK-XXXXX), then, you will want the Flex SDK version. Unfortunately, these version numbers don’t necessarily have much in common. In the future, I hope we can somehow relate these version numbers to each other so you can tell what SDK you have included inside your Flex Builder installation. For now, use the following tips to find the version number you are looking for.

The Flex Builder version is really easy to obtain by going to Flex Builder’s ‘Help->About Flex Builder 3’ menu item. This brings up the Flex Builder splash screen with the version at the lower right corner. For the Flex SDK, there are several ways to get the version. If you are compiling Flex applications using the free Flex SDK without Flex Builder, you can just print out the version using the mxmlc compiler. Just provide the -version argument to mxmlc to print this out:

FlexSDK/bin>./mxmlc -version

If you are using Flex Builder, you can get the Flex SDK version by finding the flex-sdk-description.xml file that is installed with your SDK. In a Flex Builder install, you should find this file in the Flex Builder install folder/sdks/3.0.0/. The file looks something like this:

<?xml version=”1.0″?><flex-sdk-description><name>Flex Moxie M3</name><version>3.0 Moxie M3</version><build>3.0.0.136</build></flex-sdk-description>

The SDK build version here is 3.0.0.136. In our bug notes, we often shorten this to ‘version 136’ or ‘changelist 136’.

One final detail on this topic… On the Flex SDK team, we were using Perforce as our source control system and our version numbers were something like ‘191569’. We have recently made a move to Subversion, so our version numbers started at zero again, so, the most recent SDK version numbers will be much smaller like ‘209’ which is equivalent to 3.0.209.

3 responses

  1. Nice piece of information Joan.
    It’s good to know especially when working with the guys on prerelease and bug systems as you have to provide all details about the version you’re using.

    Adrian.

  2. Hi, really nice article. Very helpful when debugging. Do you know if there is a way to inject information into the swf to keep track of builds? I have been looking all over the net but haven´t found out a way.

    Jens

  3. @Jens: I didn’t know the answer for this off the top of my head, so I asked some co-workers and the general response was that there was no direct way. One of our developers logged a bug to allow this, but, it has been deferred. Please feel free to vote on the bug:

    https://bugs.adobe.com/jira/browse/SDK-9808

    There have also been requests for a formal API to determine the Flex versions at runtime for our swcs.

    For now, they recommend that you roll your own solution using some Metadata, including a version class with static field and some custom build script logic for now.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: