Tuesday, May 6, 2014

ChefDK for Windows: Progress Update [feedly]


ChefDK for Windows: Progress Update
// Chef Blog

Hi Chefs,

I'd like to give you a quick update on our progress towards shipping a
Windows build of ChefDK. I know that with the dependency solver changes
in Berkshelf 3, it can be a struggle to get berks running on Windows so
we're working to get you a build as soon as we can.

Here's an overview of the things we're working on to get ChefDK for
Windows ready to ship:

Update Omnibus Build Definitions

The first step is to actually get the thing to build using our Omnibus
build tool. The good news here is that we have a working build, and are
now just cleaning up our patches to make them suitable to merge. The
relevant pull requests are:

Add/Fix Windows Support In Build Tools

ChefDK uses Appbundler to create the executables for embedded
applications. Appbundler provides a performance boost over regular
Rubygems executables and locks dependencies to known good versions while
still allowing plugins to be loaded. On Windows, Ruby executables need
to be wrapped in small batch scripts in order to be run directly on the
command line. We've added support for batch script generation in pull request #3

Update Chef for Ruby 2.0 on Windows

The latest Ruby versions include some performance improvements for
Windows and Ruby 1.9.3 end-of-life is just around the corner, so we want
to ship the newest Ruby available with ChefDK. We've found two issues so
far when running Chef on Ruby 2.0 on Windows. The first was a simple
dependency update to the win32-api gem which we have already merged.
Once that was fixed, we found that the ruby-wmi gem was crashing Ruby
when running the tests. We don't use many of ruby-wmi's features, so
we're investigating accessing Win32OLE directly as a way to workaround
the issue. We're currently testing the following patches to see if they
resolve this problem: Chef PR #1405 (so far so good!).

Update Omnibus to Better Support MSI Creation

To create the MSI with the right images, text, etc. we need to rewrite
our MSI creation code, which is currently hard-coded to building
chef-client. The relevant pull request is Omnibus Ruby #149.

Add Windows Machines to the Build Cluster

This is ongoing. The cookbooks we use to configure our internal Ci
infrastructure are private, so I unfortunately cannot share any code
with you.


Once we've fixed the above issues, we'll begin publishing nightly builds
of ChefDK for Windows. From there, we'll do some manual QA to try to
catch any bugs that could have slipped past our automated test suites.


We're optimistic that we'll be able to get a release out for you soon,
but like any complex software project, there's a risk that we could
uncover more bugs as we get further along and continue to test. We'll
keep you updated on our progress and we'll certainly be asking for your
help with testing as soon as we have the nightly builds out. Stay tuned!


Shared via my feedly reader

Sent from my iPhone

No comments:

Post a Comment