Today, a release of Puppet 4.0.0 is around the corner together with a
release of 3.7.4. In Puppet 4.0.0 the future parser and evaluator in 3.x
is the default, and the 3.7.4 release with --parser future turned on is
as close as we can get to 4.0.0 behavior. This for the purpose of being
a migration path from 3x to 4x (i.e. run 3x with future parser turned on
to fix issues before doing the migration to 4.0).
Since 'future parser' is available as an experimental feature its
features are not subject to semver and there may be breaking changes
between minor versions.
Over the 3x series there were naturally more issues and risk at the
beginning. The 3.7.3 release is quite decent, but it has a couple of
bugs related to collection of resources that have been fixed in 3.7.4.
Also, since it is marked 'experimental', it is really up to careful
testing on the user's part before making a decision to run with future
parser turned on in production - e.g. spotify has been testing future
parser versions all along, and are now running it in production with 3.7.3.
The best is naturally to use 3.7.4 with future parser. It is due any day
now.
On the question if it "is safe to use in production" the answer is "yes,
if you have tested" as there are no known issues that would make us say
it is unsafe. There are however language changes that if you are
extremely unlucky and have "old messy puppet code" you may silently get
a different result without errors being raised. This is the reason that
careful testing has to be done. Other changes may cause parse/validation
or runtime errors - those are considered safe as it alerts you to what
you need to fix.
If you decide to try a version of 3.7.x < 3.7.4 it is prudent to check
issue tickets marked DSL fixed in later releases so you know what could
potentially bite you. (It is probably easier to upgrade to latest 3.7
though :-)
Hope that helps you making a decision
Regards
- henrik
--
Visit my Blog "Puppet on the Edge"
http://puppet-on-the-edge.blogspot.se/