Hi list,

During the contributors summit preceding Puppetconf 2014 an effort was 
started to remove Nagios from Puppet core. This effort is currently tracked 
in https://github.com/puppetlabs/puppet/pull/3165 and and PUP-1077.

I'm going to jump the gun a bit here but once this lands we have a few 
questions to answer:
  * What should be moved out of core
  * Under which namespace should we put this

## What should be moved out of core
I think that what should stay in core are those 'building blocks' that 
without them would make Puppet completely useless or are otherwise tied 
into Puppet. Consider if you will that we shipped no types and providers at 
all, which would be the first you need. Personally that list comes down to: 
file, package, service, exec user and group. I consider those the building 
blocks of Puppet and especially the first four make up most of what people 
do in manifests.

I would also keep resources, notify, stage and schedule around and the 
filebucket because of how they influence Puppet's behaviour and the 
behaviour of other resources.

The aforementioned types are also platform agnostic, which brings me to my 
next point: types and providers that are specific to a (subset of) 
platform(s) should not be in core. If we now sing the "one of these things 
does not belong here" song that would mean I would like to oust: augeas, 
computer, cron, host, interface, k5login, macuathorization, mailalias, 
maillist, mcx, mount, nagios_*, router, scheduled_task, sel*, ssh*, 
storage, tidy, vlan, yumrepo, zfs, zone, zpool. Essentially, the rest.

This is not to say that Puppet shouldn't ship with them, I'm just saying 
they should not be part of 'core' but instead should be pulled in at 
package time in the same way we're trying to do with the nagios nightmare.

The idea behind this is to make Puppet core as small as possible and by 
decoupling so many of the types and providers from core have much more 
leeway and flexibility when it comes to making changes to said types and 
providers. I'm also of the belief that having them separate from core will 
lower a certain barrier that people feel with regard to doing things in 
core. It would hopefully also relieve the platform team a bit and allow 
those types and providers to move quicker than the core release cycle when 
the need arrises.

## Namespaces

For Nagios I've pulled the stuff into 
puppet-community/puppet-nagios_providers which will in time show up as 
puppet-community/nagios-providers on the Forge. This is mostly because no 
one really wants maintainership of the nagios stuff so it's a good place to 
'graveyard' them and who knows, maybe someone will show up and start taking 
care of them.

As for the other types and providers, I'm not entirely sure where we should 
put them. If they remain in the puppetlabs namespace there will be certain 
expectations about Puppet Labs still reviewing and managing that code as 
well as doing more release testing. Depending on if they want to carry that 
responsibility or tie themselves to that puppet-community might be the 
better place to drop those.


So, feedback? Should we move anything else out of core? If so, what and 
based on which criteria? Does PL want to carry them in their own namespace 
or should we move most of this to puppet-community?


P.S The puppet-community space on Github is open to everyone who wants to 
contribute to it, include PL employees. It's just not tied to Puppet Labs, 
governance wise, which gives us a bit more freedom to move things around 
and break stuff every now and then.

-- 
Daniele Sluijters

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-dev/ae97ed56-fdd9-40f0-abea-4a819fef5615%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to