How to break dependency cycle in Puppet when including classes

Did a ton of testing as your question was interesting...

Found this post after a while: http://www.mail-archive.com/[email protected]/msg08224.html

I agree with the poster that this is a bug, or at least not well designed, but if you include the class with absolute scope (::nginx), you can then set a require to it, like so:

class jenkins::nginx{
  include ::nginx

  file{'/etc/nginx/sites-enabled/jenkins':
    source => ...,
    require => Class['::nginx'],
  }
}