assertTrue is the professional blog of Luke Bayes and Ali Mills

What is Continuous Integration and how do I use it with ActionScript or Flex applications?

Posted by: Luke Bayes Fri, 08 May 2009 17:00:00 GMT

We recently got a question on the Sprouts Group about Continuous Integration (CI) and I thought I’d try to give it a quick explanation here.

The idea behind Continuous Integration is that you have a machine somewhere on the network that will check out, compile and test your application after almost every check-in. Whenever failures are encountered anywhere in that process, the entire team is notified. This helps us discover unexpected regressions or injections early which helps us pinpoint and address their root causes more efficiently.

This process can be useful in any project, but is especially helpful when working with teams that are all checking into different components of a larger project.

There are essentially three major problems when attempting to introduce ActionScript or Flex applications to typical CI systems:

  • The Flash Player requires a visual window manager to execute your test harness (Usually X-Windows on Linux)
  • The Flash Player does not give us the ability to capture all runtime exceptions, and when an uncaught runtime exception is encountered in the Debug Flash Player, a GUI dialog box is presented that must be manually clicked with a mouse in order to continue or abort execution. This can hang a typical CI set up, and result in an unhelpful “execution timeout” failure.
  • It can be challenging to get a Linux machine properly configured to compile your ActionScript or Flex application, run your test harness, and collect trace output and error messages.
Read more...

Tags , ,  | 4 comments

Execute any preprocessor on your ActionScript or Flex project with Sprouts!

Posted by: Luke Bayes Tue, 13 Jan 2009 22:52:00 GMT

Preprocessing? Check.

With more big thanks to Dru Nelson of BrightRoll, we have just dropped new releases of the sprout and as3 gems that support preprocessing for any compiler task.

You can add the preprocessor directive to any compilation task (or project model if you’re using task ‘helpers’).

The rdoc for the base ToolTask has more detailed information.

To get the latest version open a new terminal and enter the following:

gem update sprout-as3-bundle

As always, please let us know if you run into any issues!

Tags , ,  | no comments

Sprouts now supports Flex Debugger (FDB), Flex Compiler SHell (FCSH) and Continuous Integration (CI)!

Posted by: Luke Bayes Wed, 07 Jan 2009 19:32:00 GMT

Today brings a major set of improvements to the Sprouts ActionScript 3 bundle (and related gems).

We have introduced three major features that you can retrieve by opening a terminal and entering:

gem update sprout-as3-bundle
Read more...

Tags , ,  | 1 comment

Using External Libraries with Sprouts

Posted by: Luke Bayes Wed, 10 Sep 2008 01:26:00 GMT

Sprouts has quite a wide variety of different libraries available that you can instantly include in your project.

as3crypto
as3flickrlib-src
as3flickrlib
as3mapprlib-src
as3mapprlib
as3syndicationlib-src
as3syndicationlib
as3youtubelib-src
as3youtubelib
asunit25
asunit3
bulkloader
cairngorm-src
cairngorm
corelib-src
corelib
degrafa
facebook-api
flexlib-src
flexlib
flexunit-src
flexunit
fuse
papervision
swx
tweener
tweeneras2
yahoomapsas3

You can include any of these libraries by simply adding them as a symbol to your project_model.

1
2
3
4
5
6
7
8
9
project_model :model do |m|
  m.project_name            = 'SomeProject'
  m.language                = 'mxml'
  m.background_color        = '#FFFFFF'
  m.width                   = 970
  m.height                  = 550
  m.libraries               << :corelib
  m.libraries               << :papervision
end

This will automatically download and install these libraries into your project and update your compilation tasks to make these targets available!

If you find that the downloaded libraries aren’t working or are out of date, please send us an email with a link to the latest files.

Read on to learn more about packaging up your own libraries!

Read more...

Tags ,  | 1 comment

Using Flex 4 (Gumbo) with Sprouts

Posted by: Luke Bayes Wed, 10 Sep 2008 01:19:00 GMT

I just got a question about using the Flex 4 SDK with Sprouts and figured I’d share the answer with anyone else that may be interested…

Being insanely flexible does often have it’s downsides, but in this case life is good.

To use the latest Flex 4 SDK with the latest release of Sprouts, you can simply update your project_model by specifying the compiler_gem_name as follows:

1
2
3
4
5
6
7
8
project_model :model do |m|
  m.project_name            = 'SomeProject'
  m.language                = 'mxml'
  m.background_color        = '#FFFFFF'
  m.width                   = 970
  m.height                  = 550
  m.compiler_gem_name       = 'sprout-flex4sdk-tool'
end

Then run rake.

Fits like it grew there!

Tags ,  | no comments

Sprouts From the Outside Looking In...

Posted by: Luke Bayes Wed, 13 Aug 2008 17:37:00 GMT

As I’m sure many of you are aware, I’ve had a difficult time articulating what exactly Sprouts is and does. Finally, someone else has taken a stab at and I think he’s done a better job than I have!

Aaron Evans has published his first exploration into Sprouts and I just wanted to share it before too much time went by.

Tags  | no comments

Test-Driven Development with Sprouts in San Francsisco on Thursday

Posted by: Luke Bayes Wed, 16 Apr 2008 00:03:00 GMT

Just getting a quick note out to everyone in the San Francisco Bay Area.

There’s been a last minute setup of the Silicon Valley Flash User Group (Silvafug) and I’ve been asked to present Sprouts.

Of course I’ll be giving the now-traditional 5 minute ‘up-n-running’ demo that everyone is probably sick of seeing, but afterward I’ll be getting into some nuts and bolts of how Sprouts works in my own Test-First development process.

Paul Robertson is speaking for the first half of the evening on “AIR: Windows, Menus, and the System Tray.” which I’m really looking forward to!

At the time this post went to press, the Silvafug website hadn’t yet been updated, but according to this email, the event is scheduled to go from 5:30pm to 9:30ish at the San Francisco Adobe building (601 Townsend Street).

For those of you that don’t know, this means that we’ll be at the Mars bar from about 9:30-ish onward!

Hope to see you there.

Tags  | no comments

AsDoc and COMPC now supported in Sprouts

Posted by: Luke Bayes Mon, 25 Feb 2008 08:24:00 GMT

I just got some enhancements into the Sprout packages that provide full support for asdoc and compc.

The AsDoc support is especially handy because it gives the full terminal interface, but also allows you to generate documentation against any already defined MXMLC task without duplicating all of your configuration!

A Rakefile might look something like this:

desc "Compile the main application"
mxmlc 'bin/SomeProject.swf' do |t|
  t.input = 'src/SomeProject.as'
  t.source_path = 'lib/yourlib'
  t.source_path = 'lib/asunit'
  t.source_path = 'test'
  t.source_path = 'src'
end

desc "Generate documentation"
asdoc :doc => 'bin/SomeProject.swf'

That’s it!

You just set an MXMLC task as a prerequisite for an asdoc task and the configuration options are inherited.

The latest as3 bundle gem automatically adds something similar to all of your new project rake files.

You can always get the latest Rubyforge gems with the following:
sprout -R
sudo gem update sprout

Be sure to let us know if anything doesn’t work as expected!

Tags  | no comments

Creating Custom Generators with Sprouts

Posted by: Luke Bayes Thu, 21 Feb 2008 18:25:00 GMT

As Sprouts starts to pick up momentum, we’re starting to get questions about creating custom generators. So I thought I’d throw a quick post up to share the info more broadly.

I’m actively working on the ‘developer’ gem so that you will eventually be able to stub new sprout gems for tools, libraries, bundles, tasks and generators. Unfortunately that gem isn’t quite ready yet so for the time being, you’ll have to build your generators manually.

If you’re looking for code generators within the context of an existing project, here’s how to do it:

Read more...

Tags  | no comments | no trackbacks

Sprouts Public Beta is Released!

Posted by: Luke Bayes Wed, 20 Feb 2008 23:56:00 GMT

Ever spend half a day getting your development environment all set up for a new project? How about longer? Ever multiply that cost by the number of team members involved? How about running Continuous Integration tools (Like CruiseControl.rb) with ActionScript?

Sprouts can get you up and running with a new ActionScript 2.0, ActionScript 3.0 or Flex project in minutes regardless of whether you’re running DOS, Cygwin, OS X, Debian, Ubuntu or Fedora.

Sprouts also provides deep, versioned support for shared ActionScript libraries including AsUnit, Corelib, Cairngorm, PureMVC, and more!

We’ve finally reached public beta, and even have a shiny new website contributed by Todd Cullen!

We have complete documentation available, you can check out our Google Code project and even join our discussion group and let us know if anything doesn’t work as expected!

I’ll be presenting the latest and greatest tomorrow evening (Thursday February 21, 2008) at the 2nd meeting of the SanFlashcisco group.

Hope to see you there!

Tags  | no comments | no trackbacks

Older Posts

Older posts: 1 2