fog 0.7.0, 0.6.0 and 0.5.0

  • fog 0.7.0
  • silicon valley ruby on rails group
  • magicruby
  • ruby nation
  • red dirt rubyconf

    I’ve been so busy with all the additions to fog and new contributors that I forget to update everybody on how things are going (they are great!). The last post I pushed out coincided with 0.4.0 back around the new year and now I’m back to let you know about all the new goodies that have culminated in 0.7.0.


Adoption continues at an amazing pace. We went from 40 contributors two short months ago up to 60, crossed 80,000 downloads from and 1,000 followers on github [ed: Wes was very giddy on that day]. All the extra attention has helped to weed out even more bugs and grow the available services to meet ever more diverse use cases.

###New Providers and Services

Once again, several new services have joined the fog family, as well as a few notable additions to the existing services:

  • AWS Cloudformation basics allow for configuring whole clusters at once (tests)
  • AWS IAM has been fleshed out considerably from it’s humble origins in 0.4.0 (tests)
  • AWS RDS basics add the ability to manage hosted database servers (tests)
  • AWS S3 gained static website support (tests)
  • AWS SES basics support for cloud email delivery (example)
  • DNSimple DNS service was added (examples)
  • VirtualBox basics support managing local virtual machines (example)
  • Voxel Compute service was added (tests)

###Contribution Overhaul

geemus + fog shirt

I am always looking for ways to make it easier for people to get involved, so let me know if you have suggestions. First off I made the standing t-shirt offer more explicit, but that didn’t have too much impact.

After that I decided I ought to better groom the issues so that they would be more accessible. The clearest thing is that must issues are now labeled as either easy, medium or hard. Rather than just plucking these values out of thin air I consider each issue and add notes on what needs to be done to accommodate them before adding the label. So if you would like to help out you can pick a difficulty matching the time you have available and familiarity with the code and feel confident that everything you need to complete the task will be available. You can also feel free to skip the non-categorized tickets, since I either haven’t figured out how to do them or they will require my attention directly (i.e. accepting pull requests).


In addition to working inside fog I have been working to help others better use it. Both carrierwave and paperclip have received patches with fog support. Both of these libraries provide ways to handle files for users in your web apps and by adding fog support they no longer have to worry about supporting numerous different providers and they can focus on their specialties. We will have more details about these integrations and how you can take advantage of them in future posts.

###On the Road

I have also been privileged to be accepted to speak at a number of conferences and meetups. I spoke in January at Silicon Valley Ruby on Rails Group (recorded talk video here) and in February at Magic Ruby. Yesterday I presented at MountainWest RubyConf, and next month I’ll be at Ruby Nation April 1-2, and Red Dirt RubyConf April 21-22. If you are out and about at these conferences come say hello and let me know how you use fog.

###Toward 1.0

With all these improvements and bug fixes I can’t help but feel like we must be nearing 1.0. It will be great to reach that point but I still have a couple things I want to sort out along the way.

Although DNS and storage provide fairly universal access across providers, compute still has a few rough edges. One key focus will be smoothing differences between the compute providers.

Another goal is to better sort out testing. There is a working set of tests now, but it is split between rspec and shindo and there are some discrepancies between style and usage throughout. I’d like to solidify how these will work, as well as making it easier for contributors to run them without have credentials for everything.

Last, but certainly not least is a stronger focus on documentation. There is a bit here and a bit there currently and I’d like to consolidate things on and make them easier to explore, as well as reworking the generated in-code documentation to be more accessible.

Over all I see 1.0 outside of that as being more of the same great stuff, from bug fixes to new services as things are released and the needs of users change, and beyond 1.0 will be no different. It is just a stepping stone for us to acknowledge the great level of support and stability we have already reached.