From: A.M. K. <aku...@us...> - 2001-07-07 03:00:22
|
Update of /cvsroot/py-howto/pyhowto In directory usw-pr-cvs1:/tmp/cvs-serv2263 Modified Files: python-dev.tex Log Message: Add section on devel. principles, listing Tim's 19 theses. Added conclusion and acknowledgement sections Index: python-dev.tex =================================================================== RCS file: /cvsroot/py-howto/pyhowto/python-dev.tex,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** python-dev.tex 2001/07/06 03:58:35 1.3 --- python-dev.tex 2001/07/07 03:00:19 1.4 *************** *** 10,13 **** --- 10,14 ---- \maketitle\tableofcontents + %====================================================================== \section{Introduction} *************** *** 20,23 **** --- 21,25 ---- explanation of the development process, online forums, + %====================================================================== \section{Why Work on Python?} *************** *** 145,148 **** --- 147,151 ---- \end{itemize} + %====================================================================== \section{How Python is Developed} *************** *** 162,201 **** - \subsection{The CVS Tree} - - In May 2000, the Python CVS tree was moved to SourceForge - (\url{http://www.sf.net}), and the bug tracking and patch submission tools - offered by SourceForge were also adopted at that time. Using - SourceForge's admittedly erratic project activity ranking, Python is - often among the 10 most active projects. - - Anyone can check out a read-only copy of the CVS tree by using - anonymous CVS. First, you'll need to run the following command to anonymously log in to the CVS server: - - \begin{verbatim} - cvs -d:pserver:ano...@cv...:/cvsroot/python login - \end{verbatim} - - Then, you can check out the tree: - - \begin{verbatim} - cvs -z3 \ - -d:pserver:ano...@cv...:/cvsroot/python \ - co python - \end{verbatim} - - Running \code{cvs -z3 update} will update the CVS tree to the most - recent version. Checkin messages and the accompanying diffs are sent - to a mailing list, \email{python-checkins}. Anyone can subscribe by - going to \url{http://mail.python.org/mailman/listinfo/python-checkins}. - - Write access to the Python CVS tree is not automatically granted, - though there's no formal process to go through to get it. If the - python-dev team knows who you are, whether through mailing list - discussion, having submitted patches, or some other interaction, then - you can ask for full CVS access. You'll need to have a SourceForge - ID, and provide it with your request. - - \subsection{PEPs} --- 165,168 ---- *************** *** 236,242 **** \subsection{Bug Tracking} ! To report a bug in Python, use the bug tracking tool at \url{http://sourceforge.net/tracker/?group_id=5470\&atid=105470}. Don't report bugs by posting them to a mailing list, or sending them to a particular developer as a private e-mail; most likely the bug --- 203,311 ---- + \subsection{Design Principles} + + Each software project in the world has its own culture and style, its + own approach to designing solutions to problems. Python has its own + style, of course, and if you've learnt the language then that style + has probably rubbed off on you to some extent. Python tries to keep + things simple, to be orthogonal but not too much so, to assist the + user as much as possible. + + In June 1999, Tim Peters channeled Guido and listed 19 guiding + principles for Python's design in a \newsgroup{comp.lang.python} + posting. The principles shouldn't be taken too seriously, as they're + not hard-and-fast constraints and for each rule you can probably list + instances where it's been broken. Still, no one has had much + disagreement with this list of design criteria. + + \begin{enumerate} + \item Beautiful is better than ugly. + + \item Explicit is better than implicit. + + \item Simple is better than complex. + + \item Complex is better than complicated. + + \item Flat is better than nested. + + \item Sparse is better than dense. + + \item Readability counts. + + \item Special cases aren't special enough to break the rules. + + \item Although practicality beats purity. + + \item Errors should never pass silently. + + \item Unless explicitly silenced. + + \item In the face of ambiguity, refuse the temptation to guess. + + \item There should be one --- and preferably only one --- obvious way + to do it. + + \item Although that way may not be obvious at first unless you're Dutch. + + \item Now is better than never. + + \item Although never is often better than \emph{right} now. + + \item If the implementation is hard to explain, it's a bad idea. + + \item If the implementation is easy to explain, it may be a good idea. + + \item Namespaces are one honking great idea --- let's do more of those! + + \end{enumerate} + + Don't take these 19 aphorisms too seriously --- tattooing them on your + body is probably a bad idea, for example --- but it's instructive to + contemplate them. Some parallels can be drawn to the guiding + principles of extreme programming, most notably the emphasis on ``Do + the simplest thing that can possibly work''. + + + \subsection{The CVS Tree} + + In May 2000, the Python CVS tree was moved to SourceForge + (\url{http://www.sf.net}), and the bug tracking and patch submission tools + offered by SourceForge were also adopted at that time. Using + SourceForge's admittedly erratic project activity ranking, Python is + often among the 10 most active projects. + + Anyone can check out a read-only copy of the CVS tree by using + anonymous CVS. First, you'll need to run the following command to anonymously log in to the CVS server: + + \begin{verbatim} + cvs -d:pserver:ano...@cv...:/cvsroot/python login + \end{verbatim} + + Then, you can check out the tree: + + \begin{verbatim} + cvs -z3 \ + -d:pserver:ano...@cv...:/cvsroot/python \ + co python + \end{verbatim} + + Running \code{cvs -z3 update} will update the CVS tree to the most + recent version. Checkin messages and the accompanying diffs are sent + to a mailing list, \email{python-checkins}. Anyone can subscribe by + going to \url{http://mail.python.org/mailman/listinfo/python-checkins}. + + Write access to the Python CVS tree is not automatically granted, + though there's no formal process to go through to get it. If the + python-dev team knows who you are, whether through mailing list + discussion, having submitted patches, or some other interaction, then + you can ask for full CVS access. You'll need to have a SourceForge + ID, and provide it with your request. + + \subsection{Bug Tracking} ! To report a bug in Python, use the bug tracking tool at ! \url{http://sourceforge.net/tracker/?group_id=5470\&atid=105470}. Don't report bugs by posting them to a mailing list, or sending them to a particular developer as a private e-mail; most likely the bug *************** *** 246,252 **** for a while, but before releases someone will go over the outstanding bugs and fix or close them. PEP 3, ``Guidelines for Handling Bug ! Reports'' (online at ! \url{http://www.python.org/peps/pep-0003.html}), explains the ! procedures for handling bugs once they've been reported. --- 315,320 ---- for a while, but before releases someone will go over the outstanding bugs and fix or close them. PEP 3, ``Guidelines for Handling Bug ! Reports'' (online at \url{http://www.python.org/peps/pep-0003.html}), ! explains the procedures for handling bugs once they've been reported. *************** *** 280,283 **** --- 348,352 ---- \end{itemize} + %====================================================================== \section{Mailing Lists} *************** *** 387,396 **** fond of it. %\section{Tour of the Python Distribution} % %XXX List significant directories and source files; point to relevant %documents... ! % XXX write a conclusion \end{document} --- 456,482 ---- fond of it. + %====================================================================== %\section{Tour of the Python Distribution} % %XXX List significant directories and source files; point to relevant %documents... + + %====================================================================== + \section{Conclusion} ! The development process of any large software system continuously ! shifts and evolves to match its environment, so this document will ! probably never be either complete or totally accurate. Please report ! inaccuracies, errors, or suggestions for additional topics to me at ! \email{aku...@me...}. I hope that this guide convinces ! you that Python is a worthwhile project to spend time on, and give you ! enough information to begin contributing. ! ! %====================================================================== ! \section{Acknowledgements} ! ! The author would like to thank the following people for offering ! suggestions on various drafts of this article: Skip Montanaro, Guido ! van Rossum. \end{document} |