geppetto by Puppet Labs

an integrated toolset for developing Puppet modules and manifests

In this Release

This is a bug-fix and performance improvement release. See Issues resolved in 4.3.1 for a full list.

In this Release

In this Release

  • Support for new module metadata attributes and deprecation of Modulefile
  • New text-based editor for metadata.json
  • Improved module validation
  • Improvements to the user interface
  • Based on (compatible with) Eclipse 4.4 Luna
  • Bug Fixes

Please read the blog post Geppetto 4.2: Improved Editing, Module Validation and More for more details.

In this Release

  • Support for Puppet 3.4
  • PuppetDB connections can now be made without SSL
  • Forge connections use HTTPS
  • Puppet Issue Tracker moved to Puppetlabs JIRA
  • Bug Fixes

Transitioning from 3.x to 4.x

Please read the Release Notes for 4.0.0 section on “Transition from 3.x to 4.x” in case you are currently using a 3.x of Geppetto.

In this Release

  • Transition to Puppet Labs
  • New PuppetDB integration feature
  • Support for Puppet 3.2, including –parser future (iteration, lambdas)
  • Direct Publishing to the Forge from within Geppetto
  • Improved Editing of Modulefile / module meta data.
  • Based on (compatible with) Eclipse 4.3 Kepler
  • New documentation http://docs.puppetlabs.com/geppetto/4.0/index.html
  • Bug Fixes

The 4.0 release of Geppetto is the first after the transition to Puppet Labs. This means several things:

Transition from 3x. to 4x

There is no automatic update from Geppetto 3.x to 4.x (the product is rebranded, so technically Geppetto 4.x is a different product). What you will need to do depends on how you installed Geppetto:

  • If you are using the Packaged Geppetto:
    • Download the new version and use it instead
    • The new Packaged Geppetto will contact the new update site for maintenance releases.
  • If you have installed Geppetto into an Eclipse IDE
    • Uninstall the 3.x version of Geppetto
    • Remove (or disable) the old Geppetto update site from known update sites
    • Add the new update site http://geppetto-updates.puppetlabs.com/4.x
    • Install the 4.x version from the new update site

When Geppetto 4.x is launched on a workspace that has been used with Geppetto 3.x the startup logic will update all meta data written by Geppetto 3.x. (This only happens once). Once this rewrite has taken place, you can not use the workspace with Geppetto 3.x.

If you are uncertain, create a new workspace for Geppetto 4.x.

Downloadable Geppetto 4.x Update Site

We are currently looking into a solution for providing the update site as a downloadable item (for those that want their users to update from an internal site).

Meanwhile, please contact Puppet Labs if you need this.

Staying on Geppetto 3.x

There are no new planned releases of Geppetto 3.x. The current 3.x update site will remain for the time being (but do not expect any automatic updates).

Fixed issues

  • Bug fixes related to Modulefile/metadata.json editing (Issues #532, #537, #545, 552)
  • Bug fix related to bundle conflicts (Issues #533, #534)
  • Metadata.json missing empty entries (Issue #536)
  • Support for eclipse proxy settings when connecting to the forge (Issue 539)

In this Release

  • Support for Puppet 3.2, including –parser future (iteration, lambdas)
  • Direct Publishing to the Forge
  • Improved Editing of Modulefile / module meta data.
  • Based on (compatible with) Eclipse Kepler
  • Bug Fixes

Release Notes: https://github.com/puppetlabs/geppetto/wiki/Release-Notes

To get the new version, do a check for updates in your Geppetto, or click on the download link above to download a fresh copy.

The 3.0.1 maintenance release of Geppetto is now available for all users of 3.x Please see the FAQ for information if you run into problems updating). Checkout how to update if you don't know how.

In this release

  • Builds for Windows 64 bit are now available.
  • Formatting and save actions could lead to corrupt files if operation performed to quickly after last text modifying keystroke.
  • Formatting problems corrected.
  • Additional types of hidden files ignored when building a module.
  • Code completion of variables and quick fixes based on closest matching names. Works in string interpolation too.
  • A clean build is now performed when puppet nature is toggled. Earlier a manual build clean was required when importing projects.

See the relase notes for more detailed information about fixed issues.

Starting with version 3.0.1, Geppetto is now also available in a Windows 64 bit version.

The 3.0.0 release of Geppetto is available as ready to run download or update from within Geppetto for all users of 2.x Please see the FAQ for information if you run into problems updating). Checkout how to update if you don't know how.

In this release

  • More than 100 enhancements and fixes compared to Geppetto 2.x !
  • Formatter (Pretty Printer) with many formatting options. For more details see Geppetto Code Formatter
  • Documentation Hovers (documentation from puppet manifest and ruby files are shown using HTML hovers)
  • More and improved validation - stylistic / potential problems
  • More quick-fixes
  • Support for Puppet 3.0 (language changes and more).
  • Support for Facter variables
  • Updated platform / Eclipse 3.8

Pretty Printer

  • always space instead of tabs
  • indent 2 by default
  • smart comment processing
  • align and break (assignments, lists, hashes, arguments, etc)
  • optional compact forms (short resources, selectors, etc.)
  • can be triggered automatically on save
  • Documentation Hovers

  • Default inline formatting of manifest RDoc changed to plain blue
  • Shows hover with formatted text for referenced element (or "itself").
  • Eclipse 3.8

    • Git support (J/EGit version 2.0) details
      • stash support
      • close projects when switching branches
      • history view improvements
      • staging view improvements
    • Full screen support on OSx
    • SVN 1.7

    See the relase notes for release history, and closed issues for all details.

    We are very happy to announce that Geppetto now has been downloaded more than 5000 times! (In fact over 5400) And this before the announcements of Geppetto 3.0.0, which brings a lot of exciting new functionality like pretty printing and documentation hovers, as well as being compatible with the new Puppet 3.0 release).

    The 2.2.1 maintenance release of Geppetto is available as ready to run download or update from within Geppetto for all users of 2.x Please see the FAQ for information if you run into problems updating). Checkout how to update if you don't know how.

    In this release

    • Recognition of hiera functions is now included in all puppet targets.
    • Project specific preference flags are now stored in the project itself instead of in the workspace metadata. If you have used project specific settings you may need to re-enable them after the update. The good news is that project specific settings can be checked in and takes effect automatically when importing the project into a new workspace/instance of Geppetto. Project specific preferences now also behaves as expected (platform bugs had surprising results regarding what was actually saved).
    • Malfunction in Auto Save Actions could destroy content (this was released as a hot-fix).
    • The fictional 2.8 target is now replaced with a 3.0.0 target based on the puppet 3.0.0 release candidate 3. If you had 2.8 selected as a target, you will automatically get the new 3.0 target.
    • General stability fixes, and fixes of spelling/wording errors.

    See the relase notes for more detailed information about fixed issues.

    We are very happy to announce that Geppetto now has been downloaded more than 3000 times!

    Weather you are a hard core Puppet Professional or just starting out, Geppetto provides many features to help you write quality puppet configurations. Here are some of the things Geppetto helps you with:

    • Syntax highlighting
    • Code completion
    • Validation of potential problems and stylistic issues
    • Quick fixes
    • Validation of cross references
    • Navigation between references
    • Lots of IDE goodness; Git/SVN integration, templates, bookmarks, side by side diff, global search and replace…
    • … and much much more.

    The 2.2.0 release of Geppetto is available as ready to run download or update from within Geppetto for all users of 2.x Please see the FAQ for information if you run into problems updating). Checkout how to update if you don't know how.

    In this release

    • It is now possible to answer "where is this element declared?", and "what is using this element?" and perform navigation.
    • Improved code completion. More places now completed. Improvements to existing types of proposals. There was a general problem with code completion being confused over location in grammar leading to code completion giving many irrelevant proposals.
    • Improved folding of comments.
    • Improved validation - additional stylistic and potential problems controlled via preferences.
    • A wizard that creates an empty Modulefile has been added.
    • Close to 80 issues fixed (enhancements and problems).
    • General stability improvments and enhanced base functionality as Geppetto is now based on Eclipse Indigo service release 2, and Xtext 2.2.1.
    • Includes EGit 1.3 which adds support for submodules and additional improvments when working with git.

    See the relase notes for more detailed information about fixed issues.

    user feedback

    "...looks great! Discovered lots of warnings and even an error (which Puppet did not complain about) after upgrading. Fixed all my Puppet code now and I think this is another good step in improving my overall code quality." — Bernd Adamowicz.
    "I have to say that Geppetto is really an excellent tool and does make my devops life a lot easier. Its ability to reference other projects (puppet modules) and provide validation checks is really nice." — Hendy Irawan.
    "Geppetto #puppet IDE is pretty much awesome." — Cody Herriges
    "Geppetto works splendidly with Eclipse 3.7." — Ken Barber

    The 2.1.2 maintenance release of Geppetto is available as ready to run download or update from within Geppetto for all users of 2.x Please see the FAQ for information if you run into problems updating). Checkout how to update if you don't know how.

    In this release

    • Code completion of variables and quick fixes based on closest matching names. Works in string interpolation too.
    • Helps correct problems with the confusing addition and removal of hyphen as a legal character in variable names. These are now validated and quickfixes are available.
    • Save actions preferences that will automatically remove trailing whitespace from lines, replace all "funky" spaces (non breaking space, and all other variants of space) with regular space, and ensuring that file ends with a newline. These save actions are configurable for the workspace and projects can have individual (persisted) settings.
    • Preferences available for Potential Problems, and Stylistic Problems where it is possible to control if these checks should be made and if they are ignored, flagged as errors or warnings.
    • Checks added for selector expressions and case statements (default, duplicated and unreachable entries, etc.)
    • Improved validation:
      • Illegal assignments to numerical variables
      • "false" != false, "true" != true
      • Numerical operations on known non-numerical operands (e.g. 1 + 'hello')
      • Missing comma between entries improved (better message, and quickfix added)
    • Turns on puppet nature automatically when opening editor on a .pp file
    • SVN and Git support are now separately updateable (and uninstallable). This enables users to switch to Subclipse (from the bundled Subversion) to get support for SVN 1.7.
    • Files external to Geppetto workspace can now be opened and edited. Geppetto links them to an automatically created special project (and unlinks them on close). This makes the files open in a reasonable context, and it is possible to navigate to them from error markers etc. This is not a substitute for having proper projects, but is very useful when just wanting to look at/edit/copy text from a file available in the filesystem. (Note that files in this special project resolve references against all other files in the same project).

    See the relase notes for more detailed information about fixed issues.

    The 2.1.1 maintenance release of Geppetto is available as ready to run download or update from within Geppetto for all users of 2.x Please see the FAQ for information if you run into problems updating). Checkout how to update if you don't know how.

    In this release

    • Increased support for "magic" variables ($module_name, $0-$n).
    • Promotes puppet 'new' wizards to the top of the new menu.
    • Fixes exceptions validating empty class references.
    • Makes metadata.json marked as derived whenever it is written.
    • Validates references to uninitialized variables.
    • Fixes confusion over "." in names.
    • Adds "module_name" as meta variable in pptp.
    • Fixes NPE during building the Geppetto workspace.
    • Improves interpolation parsing. Complex interpolation strings could cause Geppetto to work for many hours.

    See the relase notes for more detailed information about fixed issues.

    geppetto 2.1 released

    The 2.1 feature release of Geppetto is available as ready to run download or update from within Geppetto for all users of 2.0.x. Please see the FAQ for information if you run into problems updating). Checkout how to update if you don't know how.

    In this release

    • 20Mb smaller footprint! and more functionality.
    • Geppetto helps with the transition from dynamically scoped variables (supported by puppet <= 2.7), to the "local, inherited, and global"-only scopes support ed by 2.8. Geppetto does this by validating variable references for target >= puppet 2.7, and offering suggestions for fixes.
      • Geppetto supports best practice, i.e., to make all references to global variables use the '::' namespace (i.e., use $::operatingsystem, in favor of $operatingsystem).
      • Geppetto helps by flagging "unknown" variables, as well as "unknown and unqualified". When targeting 2.7 these are flagged as errors, and when targeting the future 2.8, they are flagged as errors.
      • Unfortunately, it is not possible for Geppetto to validate the existence of all global variables as a majority are not known until runtime.
      • For target 2.6, Geppetto behaves as before (no warnings or errors as it is impossible to statically verify the existence of dynamically scoped variables).
      • For target >= 2.7, Geppetto requires that all non global qualified refer ences are to known variables and will issue warnings (2.7), or errors (2.8). As a consequence Geppetto 2.1 knows about variables in the $settings:: namespace.
    • Fixes issues, and regressions in 2.0.1 validation.
    • Support for Java (Eclipse JDT) removed from packaged product.
    • Based on Eclipse Indigo SR1 which means a large number of fixed issues in base functionality, and git support.

    See the relase notes for more detailed information about fixed issues.

    The 2.0.1 maintenance release of Geppetto is available as an update from within Geppetto for all users of 2.0.0. Please see the FAQ for information if you run into problems updating). Checkout how to update if you don't know how.

    In this release

    • Improved validation and error messages.
    • Validation now produces fewer and better error messages for errors inside resource statements.

    See the relase notes for more detailed information about fixed issues.

    The 2.0.0 release of Geppetto is available as download and updates from within Geppetto for all users of 1.0.x. Please see the FAQ for information if you run into problems updating). Checkout how to update if you don't know how.

    In this release

    • Code completion of resource expressions (types and definitions) and their attributes.
    • Selection of puppet target (2.6 or 2.7) can now be made in preferences. Puppet 2.7 is now the default.
    • Tasks are now generated from comments. Comments with the tags "todo" or "fixme" (case insensitive) are interpreted as "tasks" and show up in the Task View. An exclamation mark "!" anywhere in the message makes the task "important". When comments ends with a tag, the text on the same line up to the tag is used as task text. e.g. '$mispeled = false # fixme'.
    • Support for search path and environment (removes many ambiguity warnings). This feature provides detailed control over what is visible and prioritizes among otherwise ambiguous matches. Preferences available globally and per project.
    • Wizards have been improved (added wizards, better names, error handling).
    • Improvements to validation (more cases and code-smells caught)
    • Suggestions and quickfix using "soundex" for "unknown names"-errors. Type 'gebud' and Geppetto will guess you meant 'debug'.
    • Preference pages added, and preferences per project supported.
    • Auto edit (auto insert) of '' "" () {} [] /* */ can be turned on/off individually via preferences.
    • Check for updates of Geppetto turned on by default in packaged Geppetto. Check out the preferences for detailed control over update policy.
    • Packaged Geppetto uses Eclipse Indigo as base (IDE version supports >= Helios SR2). This means numerous bugfixes and enhancements to the general platform.
    • Nice icons for files, Modulefile, Manifests and puppet projects.
    • Supports alternate location of forge (mainly for testing).
    • Log View added to packaged Geppetto (it was hard to find details about some errors without this).
    • Numerous issues fixes.

    See the relase notes for more detailed information about fixed issues.

    The 1.0.2 release of Geppetto is available as an update from within Geppetto for all users of 1.0.x. Please see the FAQ for information if you run into problems updating from 1.0.0). Checkout how to update if you don't know how.

    In this release

    • Proposals for unknown references available as quick fixes (type 'gebud' and Geppetto will guess you meant 'debug').
    • Supports turning 'todo' and 'fixme' in comments into tasks. The tags are not case sensitive. If a '!' is found (somewhere) after the tag, the created task will have high priority set in the task list. Task comment text is colored dark grey by default (configurable).
    • Default platform is now puppet 2.7.
    • File properties/parameters for SELinux are now recognized.
    • Circular module dependencies now generate a warning instead of error.
    • Calls to 'include' and 'require' now validate their arguments (if they are static), and any reference errors are reported.
    • Validation of String Interpolation improved (small errors would cause wide consequences).
    • Improvements in module import from forge, and module metadata editing.
    See the relase notes for more detailed information about fixed issues.

    A maintenance release of geppetto is available for update and download. See [the relase notes] (https://github.com/puppetlabs/geppetto/wiki/Release-Notes) for more information.

    release 1_0_0

    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

    This demonstration by James Turnbull at Puppetlabs provides a good overview of Geppetto's main functionality. (This recording was made with a release < 1.0.0 of Geppetto).