[gPXE] DHCP Client ID in gPXE 1.0.0?
Marty Connor
mdc at etherboot.org
Fri Mar 19 20:13:44 EDT 2010
Hello Michael,
While I respect your right to express your opinion on this and other
matters, and am always interested to hear your technical ideas, I think
your point about etherboot is not really germane since there were
several reasons why etherboot was not an OEM preference, and I think the
fact that it varied significantly from the industry standard (PXE) was
much more significant than its extensive use of #ifdefs.
But, more to the point, I think it's important to step back and explain
something that you may not have been aware of. When you stepped away
from the project for nine-or-so months without warning or communication,
I needed to set up some new processes to ensure the continued health and
growth of our project and our codebase.
Instead of having a single lead developer, as before, we have a team
that works collaboratively to support gPXE, and whose technical judgment
I respect and rely on.
This core development team sponsors, reviews, and discusses potential
features and patches. Based on discussion amongst the team, we may
decide to promote a patch or not. We have retained you on this core team
due to your history with the project and your technical expertise, but
please understand that you are now a member of a team.
This means that your opinion is no longer the sole authoritative voice
for the architecture, features, or code. You are now a respected voice
among several, and I know that is a change you might not have understood
until now.
An additional point is that, in our new process, I have final say on
what features and code go into the main gPXE tree. When a patch has
passed review and I agree it should be applied, I am the person who
applies the patch. Again, I know this different from before, so I wanted
to explain this so you would not be confused.
In the current situation, as I noted in my original reply to this
thread, I generally agree with your point about the use of #ifdef in the
abstract, but perhaps not in this specific situation. And, to repeat a
point from my reply that you did not copy in your response:
> I'd like to see a patch, and hear other opinions before deciding.
>
> I appreciate all that you have done to make gPXE the excellent piece
> of software that it is, but yours is no longer the only voice that
> matters when we decide what goes into gPXE.
>
> I sincerely hope that you are able and willing to work cooperatively
> with our growing team of developers.
I hope my point makes more sense now.
I understand that these process changes may not be comfortable for you
to adjust to, but I feel they are necessary to ensure the continued
health of our project.
/ Marty /
On 3/19/10 3:08 PM, Michael Brown wrote:
> On Thursday 18 March 2010 07:27:52 Marty Connor wrote:
>>> I absolutely, absolutely disagree on this. The problem with #ifdef
>>> proliferation is never any one patch. Each individual #ifdef is
>>> generally quite harmless in its own right. The problem is that after a
>>> mere 32 harmless individual #ifdef patches, each of which is fine when
>>> judged individually on its own merits, you suddenly have 4 billion build
>>> combinations to test.
>>
>> I understand (and generally approve of) your view on this, but design
>> purity is only useful to a point.
>>
>> We may have some of the most subjectively beautiful code in the world,
>> but I believe we also must balance this design aesthetic with respect
>> for the needs of the people who use our code to do real-life things.
>>
>> Automated testing is not a solution to all functional ills, and testing
>> all possible build combinations does not completely ensure that software
>> will function properly in real-world environments. It certainly can be
>> useful, but should not, in my view, be too heavily relied upon. We have
>> existed 15 years without such exhaustive testing.
>
> And for the vast majority of those 15 years, almost no OEMs were shipping
> Etherboot. You yourself said on this topic, shortly before we launched
> gPXE, "Would you bet everything on Etherboot? I wouldn't". We're no longer
> in that position.
>
> This is not a question of code aesthetics, and nor is it particularly relevant
> to automated testing; it's a very simple, practical matter of code
> maintainability. If you disagree with this, try going back to the
> #ifdef-riddled Etherboot 5.4 codebase and adding a major core feature such as
> iSCSI boot without breaking anything. I'll bet US$1000 that you won't be
> able to. Feel free to prove me wrong if you can.
>
> Michael
More information about the gPXE
mailing list