[Python-Dev] Re: raw headers in rfc822.Message

Raymond Hettinger python@rcn.com
Tue, 10 Sep 2002 23:39:52 -0400


From: "Guido van Rossum" <guido@python.org>

> I guess we're assuming that even people who aren't familiar with
> SourceForge are familiar with diff.  Is that not a reasonable
> assumption any more?
> 
> There's also the developer FAQ, which has carefull instructions for
> patch generation at
> 
>   http://www.python.org/dev/devfaq.html#patches
> 
> and in addition points to http://www.python.org/patches/ which has
> everything you need (except the hint about forward diffs; I'll add
> that).

FAQs and pointers be darned; there is only one way to 
developerhood and that is through the school of hard knocks.

- Learn to use CVS (which, of course, entails SSH and such).
- Use Googol (a lot), or risk proposing that which has already
 been decided, researched, or discussed ad naseum.
- Submit a patch.  Find out that it was the wrong diff format
  or keyed-off of an older, non-current version of the file.
  Then find-out that your editor's tabbing and  spacing confounds 
  somebody's life, somewhere.  Oh, did you forget to run the 
  regression tests? Did your tests run fine, but you didn't run them 
  in debug mode?  Perhaps your Windows machine skips the test for
  the library you modified.  Break working code and suffer public 
  flogging.
- Read every PEP and make sure your patch style has no
  deviations (unless, of course, your C and Python coding
  style already matched the PEPs).
- BTW, did you submit unittests and docs with your patch?  
  Did you make appropriate adjustments to the makefiles,
  and every other reference to you work?  And appropriate
   announcements in Misc/NEWS?
- Surely, you've learned TeX and its many Python specific
  macros (forward slash or backslash, verbatim or code?)
  How many characters were on your longest line (72, 78,
  hopefully, not more).
- When learning a guitar, it helps to develop calluses on
  the fingers.  Write a PEP is the fastest way to develop the
  calluses; contradicting Guido is the second fastest way; 
  submitting a great idea is third fastest (bad ideas either
  get ignored or are slammed so quickly that the scar tissue
  doesn't have time to develop).
- Experience the politics of bug resolution.  If a developer 
  proposed it, then it should not be dismissed lightly.  If
  someone had a grandiose scheme in mind when they
  submitted the report, be prepared for wrath when you
  apply a simple solution. Realize that, in some cases,
  someone, somewhere is relying on the undocumented
  buggy behavior and your fixing it is breaking their code.
- And, my all time favorite, do everything right (formatting,
   procedure, profiling, testing, etc) and watch the Timbot
   come along five minutes later and improve your code
   making it faster, clearer, more conformant, more elegant, 
   and also gel neatly with the vaguaries of memory allocation,
   cache performance, and compilers you've never heard of.


Raymond Hettinger

Oh, and did I mention that native speakers of ASCII will
never be able to master Unicode like a native?