From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 14 06:06:16 2012 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (unknown [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3F375106566C for ; Thu, 14 Jun 2012 06:06:16 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-ob0-f182.google.com (mail-ob0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id 049548FC0C for ; Thu, 14 Jun 2012 06:06:15 +0000 (UTC) Received: by obcni5 with SMTP id ni5so2482683obc.13 for ; Wed, 13 Jun 2012 23:06:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=A+NrDkl3xXZNURsqlanpOJd1qAqDy+rKncYQxP7WoqI=; b=ml72MJ/tnv/udEn4DDy8mkcEjTfHqm4fBt75YYOfga0VnQp7s/5kEh6NKMK8Cau+Uo Qh7tzF8jT4CpAdjV5LIJycxTfxVm61oMiSjge8/aLl3ac5uupOXsLiub4jWOcwA1bN3+ S2pkzjyfcWT928LwLoDmyWmAxB0i8GcAr9KgwO4CP6MAcBX9Rr4iJrKOrcYrHuoNvJze yetK15nujPgv+tCI/nfRiNtXWIb4O+rwtrgpOs5RtVIDRNvMblBZJmPv78OQH/ewsArs SpMQ8xOISmXT3QVpV+kXKQLXM8OHx8Id/qdViZUpnj42Z0A2zziAJ7apAV7ik4+Dn0Pi SiVg== MIME-Version: 1.0 Received: by 10.182.51.100 with SMTP id j4mr394059obo.78.1339653975650; Wed, 13 Jun 2012 23:06:15 -0700 (PDT) Received: by 10.76.98.77 with HTTP; Wed, 13 Jun 2012 23:06:15 -0700 (PDT) Date: Wed, 13 Jun 2012 23:06:15 -0700 Message-ID: From: Garrett Cooper To: Royce Williams Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-hackers@freebsd.org Subject: Solving the great resource problem, take 42 (Re: Upcoming release schedule - 8.4 ?) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jun 2012 06:06:16 -0000 On Wed, Jun 13, 2012 at 10:25 PM, Royce Williams wrote: > On Wed, Jun 13, 2012 at 8:30 PM, Adrian Chadd wrote: >> On 13 June 2012 21:26, Mark Linimon wrote: >>> On Wed, Jun 13, 2012 at 08:50:24AM -0700, Garrett Cooper wrote: >>>> The only way that this would really work is if there were dedicated >>>> sustaining engineers working on actively backporting code, testing it, >>>> committing it, etc. >>> >>> I'm going to agree with Garrett here. =A0IMHO we've reached (or surpass= ed) >>> the limit of what is reasonable to ask volunteers to commit their spare >>> time to. =A0This is doubly true when we have more than one "stable" bra= nch. >> >> I totally concur. > > Ah, but you can get the same effect by freeing up those engineers to > work on the hard stuff. > > This is my usual soapbox (see [1], [2]): =A0Push more of the mundane > work out to the edges, so that the developers can focus more on the > core (like more releases/features/testing/projects). > > Here are some ideas. =A0Only developers can implement them, but they > would start paying for themselves immediately ... in developer time. > > - Frequent snapshots, with tools to automatically apply them and roll > them back (freebsd-update + ZFS snapshots?). > > - Tools to do binary walks of snapshots to pinpoint when a bug > appeared. =A0(Think 'git bisect' + freebsd-update.) > > - A taggable FAQ that supports faceted search, and a quick way to add > entries (or propose them for approval). > > - A way to search for known fixes to transient bugs and hardware issues [= 1]. > > - General debugging and testing tools for non-developers, including > tools for filing smarter bug reports. > > - A way to automatically upload crash dumps for bulk analysis (like > Windows does). > > - A dmesg analyzer that downloads a list during install, and looks for > known issues (or workarounds) with your hardware for that version of > FreeBSD (or recommend a different version!). > > Tools like these would also help more people achieve the "I tried it, > and it Just Worked" moment. =A0This can keep people's interest long > enough to give FreeBSD a serious try. =A0Some of them might enter the > volunteer pool. > > I'm not a developer, but if some of the above could be tackled, they > might free up enough Developer Equivalents (DEs, a term which I have > just made up) to be more than worth the effort. No offense, but speaking from experience, these are referred to as "wishlist projects" -- many of which get shelved until developers get enough time to work on them. This makes more sense when there are more resources so engineers can work in a less distracted manner as BSD is not Linux as far as BSD's design stratagem is concerned . This is really starting to get philosophical and away from the original intent behind the original post, but given past discussions and the fact that these topics end up going around in circles/cycling through periodically (I've seen it on ports, current/stable/hackers, etc), here's my perspective after having read these discussions a few times and given what I've seen with the project over the last 5-10 years (granted, I've become a jaded realistic/pessimist in past years, so YMMV): Problem Statement (or the "I want to have my cake and eat it too" Issue): - Users want stability, but want latest and greatest driver code and features. These are [generally] mutually exclusive. Impedance: - There aren't enough volunteer resources to do what consumers of FreeBSD want beyond what's being done, with exception of developers and other volunteers going above and beyond in extraordinary circumstances to get the job done, or doing something his/her day job requires. The former case tends to be more of the exception than the norm. The latter happens sporadically. - There are plenty of companies out there wanting to "solve this problem of release cycles", but no one group (or groups) is standing up and actively ponying up dedicated resources on a regular basis to make this a reality. What happens: Trivial tasks, like MFCing, testing, triaging, etc are being done by "lead developers" in a particular domain, which steals cycles from enhancement/bugfixing work in those areas [or other surrounding areas]; instead of investing time writing regression tests so others can do the work, no one other than the lead developers in a given area can do the work if it requires domain knowledge and/or specific hardware resources to complete the task. Eventually something happens, the developer becomes less active in the community (gets a family, no longer does FreeBSD work, gets a job, number of different things), and depending on the bus factor the particular area being maintained may remain unmaintained for some time. Alternatively, contact is done infrequently enough that interested parties willing to contribute code get discouraged and "go off and do their own thing" (be it support their own custom distro, switch to another OS, etc). In the former case, there's duplication of effort, some (or most) of which is discarded at a later date, depending on how active the supporting group. In the latter case, the party won't partake in FreeBSD, and instead the project/community misses out on an outreach opportunity. Some bugs end up going into the PR queue, where (if lucky) the item is resolved promptly; timeframes vary depending on the category, the maintainer, and the difficulty of the bug, but sometimes it can take days, months, or years. Otherwise it rots in the PR queue for some time. So, rather than do things this way by posting wishlist projects that won't happen in the immediate future, why not make developers' lives easier by spreading the load, increasing the domain knowledge in one or more areas, and improving the community in the meantime? Affected companies/the Foundation should have more than enough funds to devote towards a handful of staff to make this a reality, even if the position is part-time. Remember: low hanging fruit -> more likely to succeed -> quicker/better RoI results. Thanks, -Garrett