Geppetto 1.0.0 has been released and is available for download.

If you haven't been following the Geppetto Project, Geppetto is an integrated toolset for working with Puppet modules and manifests. It's built on the Eclipse platform. If you're an Eclipse user, you can install it directly into your IDE. If you're not, it's also available as ready-to-run .zip's with a much smaller footprint than the full Eclipse.

Although we're calling it "1.0.0", Geppetto is is probably more mature than many 1.x releases, and we have invested quite a bit of time into it over the last six months. (Actually, it didn't come out of nowhere; it builds on work we've done in other domains over the last several years.) We released the first beta at FOSDEM 2011 in Brussels in early February, and got lots of really useful feedback there and at PuppetCamp Amsterdam in April.

We're really looking forward to getting all the feedback, so we hope you'll try it out and let us know what you think.

Finally, thanks to everyone who's offered help and encouragement along the way, with a special shout-out to the people at Puppet Labs.

Here's a summary of what's supported in the release:

Puppet manifest aware editing

  • Syntax coloring (customizable)
  • Code completion
  • Structured outline for quick navigation
  • Parsing and coloring of Rdoc comments

Manifest validation

  • As-you-type syntax check
  • As-you-type warnings for code smells and deprecated constructs
  • Cross reference validation of types, definitions and functions
  • Parameter and property validation

Handling of extensions

  • Puppet distribution (types, functions, etc.) defines what is available
  • Custom ruby code (types, functions, etc.) in user code interactively used in validation. Change a type in ruby and it is instantly validated across all manifests.

Templates

  • User can add their own templates and associate them with locations in the grammar

Quick fixes - automatic fixes suggested for (some) errors

  • missing comma
  • resolving ambiguous references by making reference absolute

Forge integration

  • Download modules from the forge
  • Package content for upload to the forge

Module support

  • Import existing modules from Git, SVN, or CVS
  • Create new empty module with default structure
  • Validation of module metadata
  • Dependency resolution and validation
  • Dependency information used when validating manifests - controls visibility

Extensible - built on Eclipse platform

  • Several hundred plugins available for just about "everything"
  • Ruby and Rails development environments