[chef] Re: Re: Re: Community cookbook maintenance (was: Re: Reprepro cookbook)


Chronological Thread 
  • From: Nathan Williams < >
  • To:
  • Subject: [chef] Re: Re: Re: Community cookbook maintenance (was: Re: Reprepro cookbook)
  • Date: Thu, 25 Jun 2015 10:25:35 -0700

On Thu, 2015-06-25 at 09:11 -0700, Yoshi Spendiff wrote:
> An official certification is probably too much to handle but there 
> could be value in stating guidelines that demonstrate how a reliable 
> cookbook is designed and tested. I know Chef doesn't like to 
> prescribe but for the sake of quality a recommended path for some 
> things might be a good idea.

that seems to be changing, though; between the tooling packaged with
chefdk, and the bundled generators, they're effectively prescribing
(which is great, please keep it going!) if not overtly doing so.

> 
> The reason to maintain a community cookbook is usually because it's 
> relevant to your business/job, which is obviously why cookbooks fall 
> out of repair and only  have certain coverage.
> 
> If business 1 makes  a cookbook for platform X only and business 2 
> wants to do the same for platform Y then their options are:
> 1. Make a new cookbook for platform X
> 2. Fork
> 3. Work on a pull request
> Having good methods for business 2 to contact business 1 and state 
> their intention could lead to productive collaboration and 
> implementing better ways to find contributors and reviewers of 
> cookbooks could be a good way to help out with this, whether it's 
> business to business or just individual contributors.
> 
> It would also be useful for there to be a mechanism where ownership 
> of stale cookbooks can be transferred, especially now there are 
> groups that are willing to maintain them.

have you seen the "adopt me" stuff on supermarket? i think that
addresses this situation pretty well.

> 
> Finally, better sorting and maybe a rating system on the supermarket 
> for cookbooks would be good. If a cookbook starts out excellent but 
> isn't maintained then many lower reviews will start to drag down the 
> rating.

this'd probably be easier to implement, but it's also very subjective.
ratings systems are great for popularity, but they often miss the mark
for quality.

> 
> On Thu, Jun 25, 2015 at 3:57 AM, Roland Moriz 
> < >
>  
> wrote:
> > > Am 24.06.2015 um 17:33 schrieb Nathan Williams <
> >  >:
> > > i'd really like to see some official (maybe a BCP Chef RFC?) 
> > guidelines for quality based around the BCP guidelines... For 
> > example: evaluated with foodcritic and rubocop, integration tested 
> > with test-kitchen suites that cover the majority of recipe code
> > -paths (e.g. source vs package install, etc.), unit tested with 
> > chefspec, and support for the relevant Chef-supported platforms (ht
> > tps://github.com/chef/chef-rfc/blob/master/rfc021-platform-support
> > -policy.md).
> > >
> > > if we then had some application process for Chef Inc to certify a 
> > cookbook as complying with the BCP, and we surfaced BCP-compliant 
> > cookbooks through Supermarket (with periodic 
> > review/recertification), I think we'd be most of the way to 
> > victory. This kind of surfacing would help deal with the naming 
> > conflict and abandoned cookbook issues we currently have to deal 
> > with (the systemd cookbook is a particularly egregious example of 
> > name-squatting), and would hopefully encourage community cookbook 
> > developers to put in extra effort, knowing that BCP compliance 
> > meant better visibility and more adoption.
> > 
> > Let's assume there would be a strong quality regime in place for 
> > community cookbooks. Chef, Inc. would actively need to code review 
> > and monitor everything except "write the code". I'm not sure if 
> > this can work and even make sense. It's like taking over the 
> > responsibility ("certified cookbook") without beeing able/willing 
> > to intervene when things get bad ("not certified anymore, but out 
> > of our scope to fix").
> > 
> > It's also not useful to just increase the pressure for open source 
> > developers if you want to keep and even increase the level of 
> > community contribution.
> > 
> > This, again, brings up my other concern: Why, at all, maintain a 
> > community cookbook?
> > 
> > The vast majority - as far as I can see - is maintained by single 
> > developers and/or a single company. The GH issues to PR ration is 
> > like 10:1, e.g. it's very time consuming to support, if you take 
> > issue reports seriously and also less useful because PR aren't 
> > happening frequently and are probably not that useful (If your shop 
> > uses Debian X, you just don't care about some PR for CentOS Y that 
> > much - and vice versa).
> > 
> > I can fully understand that most OSS cookbook developers don't have 
> > time for this, become inactive or just give up. They are getting 
> > paid for keeping their employer's (or their own) business up and 
> > scaling or don't get paid at all and do this entirely in their 
> > spare time.
> > 
> > Nobody can blame them!
> > 
> > Most business are too critical to entirely rely on voluntary time 
> > allocation by open source maintainers. If your business is serious, 
> > you'll compulsorily have to start in-house maintaining most of the 
> > cookbooks over time. Usually this also implies no further 
> > contribution back to the ecosystem/upstream/supermarket. 
> > https://github.com/aws/opsworks-cookbooks ;(and OpsWorks in general) 
> > is a very good/bad example.
> > 
> > Best case is, that those "hidden" deployments will just stick with 
> > the chef patterns of 2010+, worst case they build things that 
> > should never ever be done in Chef and Ruby +that+ way…  In almost 
> > every case, Chef (product) will then be blamed for the eventual 
> > desaster, not the team that was not able to adopt the best 
> > practices provided by the community and/or Chef, Inc..
> > 
> > 
> > best regards
> > Roland
> > 
> > 
> > 
> > 
> > > anyways, that's my two cents.
> > >
> > > regards,
> > >
> > > nathan w
> > >
> > > On Wed, Jun 24, 2015 at 4:36 AM Roland Moriz 
> > > < >
> > >  
> > wrote:
> > > Hi,
> > >
> > >
> > >> Am 23.06.2015 um 00:23 schrieb Ranjib Dey 
> > >> < >
> > :
> > >>
> > >> yes there is a lot of value with Chef inc, providing a public 
> > supermarket instance, it seeds community effort. You dont need it 
> > if you consume cookbooks from github or other sources (can be 
> > public, can be private/org specific).
> > >
> > >
> > > I don’t think that it seeds community effort, because it’s often 
> > a „trap“. A cookbook, e.g. named `systemd`, looks legit but it may 
> > be broken, outdated or just be a no-op cookbook that reserves the 
> > name:
> > >
> > > https://supermarket.chef.io/cookbooks?utf8=%E2%9C%93&q=systemd&pl
> > atforms%5B%5D=
> > >
> > > - number of downloads is irrelevant, as we all know
> > > - follower number is also not a good indication, because even 
> > after a year, supermarket did not get the traction of e.g. github
> > > - last release date is probably the best indicator. In my 
> > experience most cookbooks that are not updated within the last 12 
> > months are outdated, e.g. won’t work with the recent distros like 
> > Debian 8 or CentOS/RHEL 7. How should starters „know“ this?
> > >
> > > Imagine a rather new chef user that needs to deal with systemd 
> > unit files. Just with that single „trap" he/she will probably lose 
> > a couple of hours or days or give up and pick something else with 
> > batteries included.
> > >
> > > I’m sure this is not intentional and everyone had the best 
> > intentions doing it the current way - but IMHO it’s broken :-/
> > > IMHO it’s all about hitting the right spot in between of „too 
> > much“ and „too little“ and the original opscode-cookbooks concept 
> > was probably a „too much“-problem and today it looks like we’re in 
> > a „too little“ situation.
> > >
> > >
> > >> why should community maintainers maintain a cookbook? - many. 
> > and i dont see the different of this with ruby gem, or any 
> > userspace tool (pyhton egg, or a debian in ppa).  But the common 
> > reasons are: 1) you dont want to reinvent wheel,. if theres no 
> > opensource cookbook on ossec, every time i join a place it allows 
> > me rapidly roll out ossec cookboook. 2) my job depends on my 
> > skills/knowledge, to get a better job, i need to improve my skill. 
> > but that not possible if theres no one to mentor inside my own org. 
> > opensource brings that possibility. again this is not specific to 
> > chef, its very opensource thing, if you dont understand it, or dont 
> > know what value you get, dont do it. but for those of us, who are 
> > outside chef, uses it, and loves it. exposure is a huge thing, i 
> > cant become oracle reporting expert, but i can become chef expert 
> > even if dont have much money.
> > >
> > > Sorry, but that doesn’t answer my question. Many open source 
> > projects start, when something (technology, framework) becomes 
> > „hot“. Everyone is trying to learn and get a spot in the eco 
> > system. Popularity usually also means a rising number of jobs, e.g. 
> > people can get their OSS contribution funded and/or get an 
> > interesting job. However this strategy starts to collapse when the 
> > crowd moves on to „even hotter“ things (typical hype lifecycle).
> > >
> > > Example 1: now outdated Ruby gems -> maintainer moved to node ->  
> > now outdated npm modules -> maintainer moved to Go.
> > > Example 2: cfengine -> puppet -> chef -> ansible -> docker
> > >
> > > This brain-drain affects not only the quantity but also the 
> > quality of projects. Less „eyes“ to find bugs, less „hands“ to fix 
> > them, less users to use it. Experience for new users will suffer.
> > > Why should people contribute to $not_hot_anymore projects? I 
> > don’t see that many unique chef-jobs, so having something in the 
> > GitHub repo/CV doesn’t bring you new opportunities by itself.
> > > Even a popular (>200 stars on GH) knife plugin for some trending 
> > and cheap cloud hosting provider brings you exactly 0 job/project 
> > offers (btdt).
> > >
> > > possible options:
> > >
> > > - provide minimal services that work out of the box by yourself 
> > (Chef, Inc)
> > > - subsidize community to maintain it (you pay, you decide how)
> > > - offer opportunities so people can benefit from supporting the 
> > community (e.g. job site, contract projects, sales-partnerships 
> > with indies)
> > >   otoh: As far as I can see, most „Chef certified partners“ 
> > listed on  https://www.chef.io/partners/#find-a-partner are not ;
> > part of the community and some companies that provide value to the 
> > community are not listed there at all…
> > >
> > >
> > >> the last statement you made regarding namespace, is a technical 
> > problem. again its no different here than any other place. for 
> > example redhat has libvirt-lxc which everyone confuses with 
> > standard LXC but the project itself has little code/feature 
> > compatibility with main LXC. The point is like namespace is 
> > perceived, if you want you can publish a cookbook with samename and 
> > if its really good (and assuming theres enough people who wants it) 
> > you can definitely outweigh the other cookbook. if thats not 
> > happening, lets address that.
> > >
> > > Your libvirt-example is great, as it shows why nearly nobody used 
> > it and why Docker has such a huge impact by just providing a fancy 
> > way to distribute tar archives and wrap some syscalls ;) 
> > (oversimplification intentional)
> > > Redhat isn’t very good  in community/relationship outside of 
> > their own Fedora/RHEL area. Just see how they „sell“ systemd to 
> > users, developers and admins. I think better tutorials and 
> > community-relations would have prevented that hatery/shitstorm 
> > against it.
> > > When I talk to systemd-"haters", I ask them to write me a sysv
> > -init script for a service, then I show them the systemd unit 
> > representation.
> > > When ansible users talk to me (chef user), they ask me to write a 
> > solution that… whops. damn. You understand what I mean?
> > >
> > >> the definition of critical is very diverse, theres no common 
> > critical component/cookbook. nothing. 0. as far as the whole 
> > community is concerned. if you freeze platform  (since chef run 
> > from windows machine to raspberry pi to AIX to solaris) you might 
> > get a list of critical cookbooks (like sudo will be for linux), you 
> > might get another layer on family (like sysdtemd on ubuntu 15.04) 
> > .. we are in process of establishing the family specific 
> > maintainers, a similar effort can be made for cookbooks as well.. 
> > but will be mostly community and few core contributors .. similar 
> > to kernel and userspace..  linus and linux foundation or redhat 
> > does not maintain ruby specific rpm etc..
> > >
> > > Why do people need DevOps? To have a reliable infrastructure to 
> > provide services that make money and to stay competitive. Usually 
> > that involves more or less custom applications based on common 
> > frameworks/stacks that need to be deployed. So at least a couple of 
> > application deployment stacks are critical to show the benefits of 
> > a DevOps solution. Even the learn.chef.io tutorial falls apart, 
> > when you’re using the latest releases of cookbooks used in the 
> > tutorial, so this is also a good definition of critical.
> > >
> > >> i am very interested in addressing this.. please keep your 
> > thoughts pouring :-) , but understand we cant solve it in a click, 
> > its gonna take some time, we have to keep talking, and out 
> > collaborative efforts on the next blockers toward this direction.
> > >
> > >
> > >> fwiw i am the LT of chef on ubuntu, and i am working on a CD 
> > system that will test actual community cookbooks on every master 
> > merge of chef. Which will greatly reduce the maintenance burden, 
> > cause now core devs can also see what affect the changeset has. 
> > Next step will be do a survey and get a list of cookbooks and 
> > interested folks (brigade as we calling it) for ubuntu. What i 
> > wonder is a common pool might not make sense, though Chef is cross 
> > platform, majority of cookbook is not.
> > >
> > > You don’t need a fancy distro/edge-case. Just make sure Debian 8, 
> > RHEL 7, Ubuntu 14.04 and 15.04 start to work. And by work i don’t 
> > mean something like „it installs runit triggered by sysv-init — and 
> > it still works…“ on a systemd distro ;-)
> > >
> > >
> > > regards
> > > Roland
> > >
> > > PS: Despite all my examples I’m not a systemd zealot. I was okay 
> > with upstart… But a common base of various distros is a good thing 
> > for everyone in the long run. And it’s also a good example for a 
> > game-changer and about the agility/adoption capabilities of such 
> > things.
> > >
> > >
> > >
> > >
> > >>
> > >>
> > >> hth
> > >> ranjib
> > >>
> > >> On Mon, Jun 22, 2015 at 2:27 PM, Roland Moriz 
> > >> < >
> > >>  
> > wrote:
> > >>
> > >> > Am 22.06.2015 um 22:52 schrieb Julian C. Dunn <
> >  >:
> > >> >
> > >> > On Mon, Jun 22, 2015 at 12:33 PM, Adam Jacob 
> > >> > < >
> > >> >  
> > wrote:
> > >> >
> > >> >> To speak for Chef Software directly, we have always had 
> > people on staff
> > >> >> whose role was assisting the creation and maintenance of 
> > cookbooks. That
> > >> >> number has fluctuated up and down over time, with the skill 
> > sets of people
> > >> >> we hire, and the normal day-to-day ebb and flow of trying to 
> > figure out how
> > >> >> to build a business that is successful. We have people on 
> > staff today who do
> > >> >> the same. What is clear is that the energy around cookbooks 
> > in the community
> > >> >> is far greater than the energy we can muster as an 
> > organization (regardless
> > >> >> of how much capital we do or do not have - y'all outnumber 
> > us) - and so our
> > >> >> focus today is on trying to build and support the best 
> > community we can,
> > >> >> through development of the supermarket, better tooling, and 
> > providing a few
> > >> >> key examples of how best to build a community cookbook (see 
> > Sean's work on
> > >> >> the httpd cookbook.)
> > >> >>
> > >> >> Perhaps we need to organize a PR/merge festival brigade?
> > >> >
> > >> > Hey Adam,
> > >> >
> > >> > Would we consider transferring some of those cookbooks our of
> > >> > {opscode,chef}-cookbooks to a community-organized org like
> > >> > chef-brigade (https://github.com/chef-brigade) or redguide
> > >> > (https://github.com/redguide) for better maintenance? What 
> > would be
> > >> > the preconditions to doing that?
> > >> >
> > >> > Personally I would like the chef-brigade and redguide to be 
> > merged,
> > >> > but I do not remember all the players involved -- if they are 
> > on this
> > >> > list perhaps they can speak up.
> > >>
> > >>
> > >> How would this prevent the problems that happend with the last 
> > migration of former opscode-cookbooks to community maintainers?
> > >>
> > >> Why should community maintainers care about the cookbooks in the 
> > future?
> > >> It can be a time consuming burden and people need to pay their 
> > rent and do their regular jobs…
> > >>
> > >> I know, this will be very provoking, but:
> > >>
> > >> If Chef, inc. doesn't want to maintain even critical cookbooks 
> > anymore, is there still a valid reason for running a public 
> > Supermarket site?
> > >> If you go the "libertarian way" there is no reason for a 
> > supermarket site to protect/block names of cookbooks anymore that 
> > prevents users to pick other, maybe better community resources over 
> > legacy-cookbooks that are mentioned in guides and examples.
> > >>
> > >> Either you (Chef, Inc.) control the market (e.g. maintain 
> > critical things yourself) or you should allow the free market 
> > (=community) to compete against each other based on equal 
> > opportunity (= namespaces or no supermarket). Everything else/in 
> > between will just end in chaos and anarchy.
> > >>
> > >> regards
> > >> Roland
> > >>
> > >>
> > 
> > 
> 
> 



Archive powered by MHonArc 2.6.16.

§