Schedule for releases

John Baldwin jhb at freebsd.org
Tue Dec 28 15:20:14 UTC 2010


On Monday, December 27, 2010 9:47:32 am Bjoern A. Zeeb wrote:
> On Wed, 22 Dec 2010, Ulrich Spörlein wrote:
> 
> Hi,
> 
> > I think this is the core "problem". Statistics[1] show, that most
> > developers run some form of -CURRENT and
> ...
> > [1] I just made this statistic up.
> 
> and I think you are just plain wrong here.  Seriously I would bet that
>   >75% of the developers do not run some sort of head for their
> day-to-day work.  They might use it for compile (and boot and maybe
> sometimes even some more) testing, they might run it in a VM, or a lab
> machine but not on their servers, not on their notebooks and not on
> their desktops they work with daily (and neither would I expect most
> consumers of FreeBSD unfortunately).
> 
> 
> I am still not convinced that whatever development model people and
> companies use (and I heard of in here) is better than to just devel
> on HEAD and if it works there merge it and backport it to your release
> branch for QA and shipping.

Sadly, I need to actually ship the development I do that is work-related, so I 
do it on stable first and then forward port it to HEAD afterward.  Other 
changes that are not work-centric (e.g. PCI hacking) I do on HEAD directly.  
However, for tasks specific to what work needs, that model does not work.

One key reason it does not work is that many bugs only show up in production.  
This was true for me at Y! as well as my current job.  And we are _not_ going 
to run HEAD in production.  I simply can't sell that.  So that means that when 
we do encounter various bugs, we have to debug and fix them on the -stable we 
currently use and later forward port to HEAD.

> In addition if you work on HEAD, you find problems as they occur and
> not years later when developers have long moved on to other projects
> and it's a pain for them to task swap back to whatever for a branch
> that indeed is only barely supported anymore.

This does not work for bugs that only show up under production load (which is 
most of them).

> If you do your daily/weekly/monthly regression tests for your
> products you can catch that. If you run HEAD, you'll also catch it
> timely to avoid binary searches of multiple quarters or years.

It can be a lot of work to maintain support for compiling on multiple 
platforms that companies may not (I know some of them definitely will not) 
want to invest extra time in.

> Some of you have the infrastructure and I can understand that you cannot
> share (most of) it but you could run it on plain FreeBSD as well and
> show us the reports?

In many cases if a company has local changes to FreeBSD, their software is 
heavily tied to those local modifications and will not run on stock FreeBSD.

> Consider to do that regularly (it doesn't have to
> be daily but maybe (bi-)weekly or monthly). "Budget" for it in terms of
> infrastructure and employee time.  It'll probably save you time (and
> with that money) in the end and help us to improve the solid
> foundation you are building your products on.

I think this is an area of give and take though.  Some companies already 
budget time in that they employ committers and allow them to work on FreeBSD 
stuff that isn't strictly work-related part-time and merge things upstream to 
HEAD when possible.  Is it too much to ask that the Project make that path a 
bit easier by making stable branches longer?

There are some recent examples of companies funding work to go into HEAD first 
that they plan to use a backport of (NFSLOCKD, the NFS server GSSAPI support, 
SU+J, and infiband), so this model can certainly work.  It probably also works 
best for upstreamable new features which tend to be some of the largest diffs 
where the features can be tested independently of a company's proprietary 
software stack.

-- 
John Baldwin


More information about the freebsd-arch mailing list