The Puppet Labs Issue Tracker has Moved: https://tickets.puppetlabs.com

This issue tracker is now in read-only archive mode and automatic ticket export has been disabled. Redmine users will need to create a new JIRA account to file tickets using https://tickets.puppetlabs.com. See the following page for information on filing tickets with JIRA:

Feature #16937

Improved Ruby DSL

Added by Anonymous over 3 years ago. Updated over 3 years ago.

Status:ClosedStart date:10/11/2012
Priority:ImmediateDue date:
Assignee:-% Done:

0%

Category:language
Target version:3.1.0
Affected Puppet version: Branch:
Keywords:ruby, dsl, ruby dsl backlog

We've Moved!

Ticket tracking is now hosted in JIRA: https://tickets.puppetlabs.com


Description

This is a tracking ticket for the Ruby DSL rewrite that was done as a Google Summer of Code project.

There original GSOC12 wording about this project was:

Feature Parity for the Ruby DSL

Project Title

Expand Features set for the Ruby DSL of Puppet

Description/Benefits

The Ruby DSL for Puppet is missing a few features when compared to the native DSL. This project would align the Ruby DSL with the native DSL. Examples of missing features in the ruby DSL as it stands today:

  • no defined types
  • issues are symbols vs strings
  • parameterized classes validation
  • Composite namevars
  • inheritance/overrides

Related issues

Related to Puppet - Bug #7267: Ruby DSL definitions must have required parameters at the... Accepted 04/27/2011
Related to Puppet - Bug #11912: Ruby DSL should be able to use defined resources Closed 01/12/2012
Related to Puppet - Bug #5256: Ruby DSL changes require puppet master restart Accepted 11/10/2010
Related to Puppet - Bug #15304: Ruby DSL hostclass arguments should have access to scope. Investigating 06/29/2012
Related to Puppet - Bug #10547: inline_template newlines issue with ruby dsl Closed 11/04/2011
Related to Puppet - Bug #15303: Ruby DSL parse errors should give location information Investigating 06/29/2012
Related to Puppet - Bug #8075: Arbitrary calls from Ruby DSL causes a spin into the abyss Accepted
Related to Puppet - Bug #6501: Ruby DSL doesn't produce useful backtraces Accepted 02/25/2011
Related to Puppet Documentation - Bug #10089: The usage of Facts in Ruby DSL is not documented Closed 10/14/2011
Related to Puppet - Bug #5237: attribute defaults do not work with Ruby dsl classes Accepted 11/09/2010
Related to Puppet - Bug #5674: resource auto-search/auto-loading doesn't work in ruby dsl Closed 12/25/2010
Related to Puppet - Feature #14894: eval function for puppet DSL as ruby function Needs Decision 06/07/2012
Related to Puppet - Feature #3096: Puppet should have a pure-ruby internal DSL Closed 01/21/2010
Related to Puppet - Feature #14893: eval function for puppet DSL as ruby function Duplicate 06/07/2012
Related to Puppet - Feature #16401: make it possible to namespace ruby-defined types Investigating 09/13/2012
Related to Puppet - Bug #15741: Ambiguous error message when setting up an invalid requir... Investigating 07/31/2012
Related to Puppet - Bug #15009: Cannot express Class inheritence Investigating 06/13/2012
Related to Puppet - Bug #5236: Ruby DSL cannot declare parameterized classes Closed 11/08/2010
Related to Puppet - Bug #4234: Ruby DSL fails if you specify more than one resource Closed 07/14/2010
Related to Puppet - Feature #12930: Provide a manifest directory where all manifests are auto... Investigating 03/02/2012
Related to Puppet - Refactor #8923: Ordering syntax can be easy to miss Investigating 08/11/2011
Related to Puppet - Bug #3873: Unexpected dependency created by exec Investigating 05/25/2010
Related to Puppet - Feature #16412: flag file resources and other diff-able things as "no-dif... Closed 09/14/2012
Related to Puppet - Feature #3987: Allow ${var} with curlies everywhere Accepted 06/10/2010
Related to Puppet - Feature #16286: add || operator Needs Decision 09/06/2012
Related to Puppet - Bug #15628: Need way to pass array to class to APPEND to defaults Needs Decision 07/20/2012
Related to Puppet - Feature #14998: allow mode changes on files without restarting the service. Needs Decision 06/13/2012
Related to Puppet - Feature #12277: Add syntactic sugar for "after" to mimic "require" meta-p... Needs Decision 01/30/2012
Related to Puppet - Feature #12179: Package resource should allow ensure=>">1.0" or ensure=>"... Needs Decision 01/25/2012
Related to Puppet - Feature #11915: Segregate client facts, server facts and ENC params in to... Needs Decision 01/12/2012
Related to Puppet - Bug #11550: define within a class doesn't use the class's scope Needs Decision 12/22/2011
Related to Puppet - Bug #5259: Synonyms (title, namevar, name) make it confusing. Needs Decision 11/11/2010
Related to Puppet - Bug #18739: Calling functions from Puppet Ruby DSL does not work Closed
Related to Puppet - Bug #18458: Puppet Ruby DSL does not reload changed manifests Closed
Related to Puppet - Bug #17845: document stability of ruby dsl api Closed
Related to Puppet - Bug #17844: rename `my` in ruby dsl Closed
Related to Puppet - Feature #18876: Deprecate the use of the Ruby DSL Closed
Related to Standard Library - Feature #18916: Ruby evaluation function Rejected

History

#1 Updated by Anonymous over 3 years ago

There is a wiki page at http://projects.puppetlabs.com/projects/1/wiki/Ruby_Dsl which we’ll probably want to do something with.

#2 Updated by Anonymous over 3 years ago

  • Description updated (diff)

#3 Updated by Anonymous over 3 years ago

  • Description updated (diff)

#4 Updated by Anonymous over 3 years ago

When I left this I was working on transforming the pull request from mlen into something that we could reasonably commit: expunge or collapse commits that were unnecessary or confusing. (For example, expunge the Travis-CI related code, collapse “bug fix” into the commit it fixed, reduce churn of the gemspec file, etc)

My push is here: https://github.com/daniel-pittman/puppet/tree/feature/3.x/new-ruby-dsl-by-mlen

Beyond finishing merging those commits down to a manageable number, I needed to check the pull request this was built from for future fixes, and verify that all the comments on his code were addressed. (mlen was going to push a couple more changes to his branch to address some of those.)

#5 Updated by eric sorenson over 3 years ago

  • Target version changed from 3.1.0 to 3.x
  • Keywords changed from ruby, dsl, ruby dsl to ruby, dsl, ruby dsl backlog

#6 Updated by eric sorenson over 3 years ago

  • Priority changed from Normal to High

#7 Updated by Nick Fagerlund over 3 years ago

I haven’t had a chance to delve deeply yet, but I remember the new DSL including some non-standard use of words like “define.” (Like using “define” to mean “declare a resource of a pre-existing native type.”)

I’d like to make sure this gets looked at by UX and/or docs teams before the new DSL gets merged into consensus reality. If we send it live with language that conflicts with everything else, we’re setting ourselves up for years of pain.

#8 Updated by Anonymous over 3 years ago

  • Target version changed from 3.x to 3.1.0

#9 Updated by Anonymous over 3 years ago

  • Status changed from In Topic Branch Pending Review to Ready for Documentation
  • Assignee set to Anonymous

#10 Updated by eric sorenson over 3 years ago

  • Status changed from Ready for Documentation to Merged - Pending Release

Docs are complete.

#11 Updated by eric sorenson over 3 years ago

For people looking for documentation to use the new DSL before it’s linked in off the doc site:

http://docs.puppetlabs.com/puppet/3/reference/ruby_dsl.html http://docs.puppetlabs.com/puppet/3/reference/ruby_dsl_statements_expressions.html

#12 Updated by eric sorenson over 3 years ago

  • Priority changed from High to Immediate

#13 Updated by Matthaus Owens over 3 years ago

  • Status changed from Merged - Pending Release to Closed

Released in Puppet 3.1.0-rc1

Also available in: Atom PDF