From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 14 07:02:04 2012 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 832051065670 for ; Thu, 14 Jun 2012 07:02:04 +0000 (UTC) (envelope-from jhellenthal@dataix.net) Received: from mail-gg0-f182.google.com (mail-gg0-f182.google.com [209.85.161.182]) by mx1.freebsd.org (Postfix) with ESMTP id 209BC8FC0A for ; Thu, 14 Jun 2012 07:02:04 +0000 (UTC) Received: by ggnm2 with SMTP id m2so1284854ggn.13 for ; Thu, 14 Jun 2012 00:02:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dataix.net; s=rsa; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:content-transfer-encoding :in-reply-to; bh=+8QV7s5EjVzaNIcRzWEYoBcuUxlQdTP3tefGCVqWdhY=; b=P/ZIrhev7vDAffKCnZvgbF2Prd3X2DAeUtR41D4ap3KKCVDYS8fxcyxHaBLbzEhVRH I3n29jozW8daTJf0VEcN7CxBM1sNEN3RYJN2yPH+0Ez9H1FAkf0MauRJXzwEyfnJQjLH hsLmCyd9H3t+NwgsiEfbOMpHArhVxWkjvXm1E= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:content-transfer-encoding :in-reply-to:x-gm-message-state; bh=+8QV7s5EjVzaNIcRzWEYoBcuUxlQdTP3tefGCVqWdhY=; b=bbBy3hyFJCJLal0DhhmIFQcFli3HYCg2UqSXYv879X9BTmAmVX8UjrIsWI3toxkxGi bMp1IGGsoUcUm9fcrdwOozZT8IbfXppjC9mPFM7R+gVnC4Pxh06fj5wx4Rp9KYs1IolY zad/uodGj+ot9H4kbrgdeL/no0JAoDk/uWmegk9cqtkF2y7Zb/iqSd/o9zfQrrbETc7b wnEyZt2keBDVIVYEr/rv5dlZmneEwqTcdKJAwPug0X+AMeE6UBb5vmtK4SPsl7uF9YtY yYrr0hpqMnFfNcGR8gTEZWyPkJHaGMYhgXYEk6gxs6AoEnc4bVSKRQw4JdxI4xkFiE7S cBqg== Received: by 10.236.78.2 with SMTP id f2mr792770yhe.118.1339657323350; Thu, 14 Jun 2012 00:02:03 -0700 (PDT) Received: from DataIX.net (75-128-120-86.dhcp.aldl.mi.charter.com. [75.128.120.86]) by mx.google.com with ESMTPS id g22sm17744618yhh.20.2012.06.14.00.02.02 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 14 Jun 2012 00:02:02 -0700 (PDT) Received: from DataIX.net (localhost [127.0.0.1]) by DataIX.net (8.14.5/8.14.5) with ESMTP id q5E720Mm031980 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 14 Jun 2012 03:02:00 -0400 (EDT) (envelope-from jhellenthal@DataIX.net) Received: (from jh@localhost) by DataIX.net (8.14.5/8.14.5/Submit) id q5E720VK031979; Thu, 14 Jun 2012 03:02:00 -0400 (EDT) (envelope-from jhellenthal@DataIX.net) Date: Thu, 14 Jun 2012 03:02:00 -0400 From: Jason Hellenthal To: Garrett Cooper Message-ID: <20120614070200.GA6426@DataIX.net> References: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Gm-Message-State: ALoCoQnEUaiGoB7ddDFL+gJ0Y6CTDtLhaYln+OXpsDSDci6x0q2/NkF6cu9nsLtRA95bBsoLCotR Cc: freebsd-hackers@freebsd.org, Royce Williams Subject: Re: 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 07:02:04 -0000 On Wed, Jun 13, 2012 at 11:06:15PM -0700, Garrett Cooper wrote: > 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.  IMHO we've reached (or surpassed) > >>> the limit of what is reasonable to ask volunteers to commit their spare > >>> time to.  This is doubly true when we have more than one "stable" branch. > >> > >> 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]):  Push 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.  Only 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.  (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.  This can keep people's interest long > > enough to give FreeBSD a serious try.  Some 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. > Garrett, This should be posted up somewhere permanent and linked to by a FAQ or a few other articles. This is the longest "interesting" article I have read in a while I could not stop reading... [Not being sarcastic] Anyway... It is too bad that in times like these that three main communities of BSD users and programmers alike could not come to a common sense to forge an aliance to build a better stronger (C)ommonBSD. There is a lot more to be had by converging resources and reaching a middle ground that fits the ideals of all three projects that would benefit more than just users but "large" vendors and developers as well. The resources are out there... someone just has to take the first step. -- - (2^(N-1))