summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Schneider-Kamp <nowonder@nowonder.de>2000-07-14 01:28:47 (GMT)
committerPeter Schneider-Kamp <nowonder@nowonder.de>2000-07-14 01:28:47 (GMT)
commit737bcc346693a9cfb7b86b7c569008052fe7abe0 (patch)
treea9062bbe5bd605a76a239cab6577cf78bf6027dd
parent9f28a039f6b0d320c60a605e42618fdbacd14908 (diff)
downloadcpython-737bcc346693a9cfb7b86b7c569008052fe7abe0.zip
cpython-737bcc346693a9cfb7b86b7c569008052fe7abe0.tar.gz
cpython-737bcc346693a9cfb7b86b7c569008052fe7abe0.tar.bz2
small FAQ about Python CVS and patches at SourceForge
-rw-r--r--Misc/sf-faq.html389
1 files changed, 389 insertions, 0 deletions
diff --git a/Misc/sf-faq.html b/Misc/sf-faq.html
new file mode 100644
index 0000000..5d727f7
--- /dev/null
+++ b/Misc/sf-faq.html
@@ -0,0 +1,389 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.72 [en] (X11; I; Linux 2.2.13 i686) [Netscape]">
+</head>
+<body text="#000000" bgcolor="#99CCFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
+
+<center>
+<h1>
+Python at SourceForge - Frequently Asked Questions</h1></center>
+
+<h1>
+0. Contents</h1>
+
+<h2>
+<a href="#general">1. General</a></h2>
+
+<ol>
+<li>
+<a href="#g1">What is SourceForge?</a></li>
+
+<li>
+<a href="#g2">Where do I find Python there?</a></li>
+</ol>
+
+<h2>
+<a href="#cvs">2. CVS</a></h2>
+
+<ol>
+<li>
+<a href="#c1">How do I check out a CVS version of Python?</a></li>
+
+<li>
+<a href="#c2">What settings should I use?</a></li>
+
+<li>
+<a href="#c3">Troubleshooting: "Permission Denied"</a></li>
+
+<li>
+<a href="#c4">Where can I learn more about CVS?</a></li>
+</ol>
+
+<h2>
+<a href="#patches">3. Patches</a></h2>
+
+<ol>
+<li>
+<a href="#p1">How to make a patch?</a></li>
+
+<li>
+<a href="#p2">How to submit patches?</a></li>
+
+<li>
+<a href="#p3">How to change the status of a patch?</a></li>
+</ol>
+
+<h2>
+<a href="#appendix">A. Appendix</a></h2>
+
+<ol>
+<li>
+<a href="#a1">Patch Manager Guidelines [09.07.2000]</a></li>
+
+<li>
+<a href="#a2">Python Patch Submission Guidelines [29.06.2000]</a></li>
+</ol>
+
+<h1>
+<a NAME="general"></a>1. General</h1>
+
+<h3>
+<a NAME="g1"></a>1.1.:</h3>
+
+<h4>
+Q: What is SourceForge?</h4>
+
+<h4>
+A:</h4>
+<a href="http://sourceforge.net">SourceForge</a> is a free hosting service
+for <a href="http://opensource.org">OpenSource</a> projects. The main website
+is found at
+<blockquote><tt><a href="http://sourceforge.net">http://sourceforge.net</a></tt></blockquote>
+
+<h3>
+<a NAME="g2"></a>1.2.:</h3>
+
+<h4>
+Q: Where can I find Python on SourceForge?</h4>
+
+<h4>
+A:</h4>
+The <a href="http://sourceforge.net/projects/python">Python project page</a>
+can be found at
+<blockquote><tt><a href="http://sourceforge.net/projects/python">http://sourceforge.net/projects/python</a></tt></blockquote>
+
+<h1>
+<a NAME="cvs"></a>2. CVS</h1>
+
+<h3>
+<a NAME="c1"></a>2.1.:</h3>
+
+<h4>
+Q: How do I check out a CVS version of Python?</h4>
+
+<h4>
+A:</h4>
+If&nbsp; you are not a SourceForge-recognized Python developer you can
+still check out an anonymous CVS version (read-only) of Python:
+<blockquote><tt>export CVSROOT=:pserver:anonymous@cvs.python.sourceforge.net:/cvsroot/python</tt>
+<br><tt>cvs login</tt>
+<br><tt>cvs -z3 co python</tt></blockquote>
+If you are indeed a developer you can check out a read/write version with
+ssh:
+<blockquote><tt>export CVS_RSH=ssh</tt>
+<br><tt>export CVSROOT=sf_username@cvs.python.sourceforge.net:/cvsroot/python</tt>
+<br><tt>cvs -z3 co python</tt></blockquote>
+
+<h3>
+<a NAME="c2"></a>2.2.:</h3>
+
+<h4>
+Q:&nbsp; What setting should I use?</h4>
+
+<h4>
+A:</h4>
+That is, of course, hard to answer in the general case. I use the following
+.cvsrc file:
+<blockquote><tt>diff -c</tt>
+<br><tt>update -d</tt></blockquote>
+This defaults diff to context diffs (almost a requirement as everything
+else is harder to read) and tells update to automatically checkout new
+subdirectories.
+<h3>
+<a NAME="c3"></a>2.3.:</h3>
+
+<h4>
+Q: I get the following error message:</h4>
+
+<blockquote><tt>Sorry, you don't have read/write access to the history
+file /cvsroot/python/CVSROOT/history</tt>
+<br><tt>Permission denied</tt></blockquote>
+
+<h4>
+A:</h4>
+If you are not a developer, you don't have read/write access. You have
+to check out an anonymous copy. If you are a developer you have to be in
+the SourceForge group "python". You can check this with the following commands:
+<blockquote><tt>ssh -l sf_username shell.sourceforge.net</tt>
+<br><tt>groups</tt></blockquote>
+If you have just recently (&lt; 6 hours) been added to the Python project,
+you probably have to wait for the SourceForge servers to synch up. This
+can take up to 6 hours.
+<h3>
+<a NAME="c4"></a>2.4.:</h3>
+
+<h4>
+Q: Where can I learn more about CVS?</h4>
+
+<h4>
+A:</h4>
+For SourceForge specific information consult their CVS documentation at
+<blockquote><tt><a href="http://sfdocs.sourceforge.net/sfdocs">http://sfdocs.sourceforge.net/sfdocs</a></tt></blockquote>
+For general (and more advanced) information consult the free CVS Book at
+<blockquote><tt><a href="http://cvsbook.red-bean.com/cvsbook.html#Introduction">http://cvsbook.red-bean.com/cvsbook.html#Introduction</a></tt></blockquote>
+
+<h1>
+<a NAME="patches"></a>3. Patches</h1>
+
+<h3>
+<a NAME="p1"></a>3.1.:</h3>
+
+<h4>
+Q: How to make a patch?</h4>
+
+<h4>
+A:</h4>
+If you are using CVS (anonymous or developer) you can use CVS to make the
+patches for you. Just edit your local copy and enter the following command:
+<blockquote><tt>cvs diff | tee ~/name_of_the_patch.diff</tt></blockquote>
+Else you can use the diff util which comes with most operating systems
+(a Windows version is available as part of the cygwin tools).
+<br>&nbsp;
+<h3>
+<a NAME="p2"></a>3.2.:</h3>
+
+<h4>
+Q: How to submit a patch?</h4>
+
+<h4>
+A:</h4>
+Please read the <a href="http://www.python.org/patches">Patch Submission
+Guidelines</a> at
+<blockquote><tt><a href="http://www.python.org/patches">http://www.python.org/patches</a></tt></blockquote>
+A <a href="#a2">recent copy</a> can be found in the Appendix of this FAQ.
+<br>&nbsp;
+<h3>
+<a NAME="p3"></a>3.3.:</h3>
+
+<h4>
+Q: How to change the status of a patch?</h4>
+
+<h4>
+A:</h4>
+To change the status of a patch or assign it to somebody else you have
+to be a) a SourceForge-recognized Python developer and b) a patch administrator.
+Unfortunately the SourceForge default for developers is not to be patch
+administrators. Contact one of the project administrators if the following
+does not work for you.
+<p>Click on the patch itself. In the screen that comes up, there is a drop-box
+for "Assigned To:" and a drop-box for "Status:" where you can select a
+new responsible developer or a new status respectively. After selecting
+the appropriate victim and status, hit the "Submit Changes" button at the
+bottom of the page.
+<p>For more information about the use of the "Status:" and "Assigned To:"
+fields consult the <a href="#a1">Patch Manager Guidelines</a>. A recent
+copy can be found in the Appendix of this FAQ.
+<br>&nbsp;
+<h1>
+<a NAME="appendix"></a>A. Appendix</h1>
+
+<h3>
+<a NAME="a1"></a>A.1.: Patch Manager Guidelines</h3>
+
+<h4>
+Intended use of SourceForge patch status &amp; "assigned to" fields</h4>
+revision 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+09-Jul-2000
+<p>In general, the status field should be close to self-explanatory, and
+the "Assigned to:" field should be the person responsible for taking the
+next step in the patch process.&nbsp; Both fields are expected to change
+value over the life of a patch; the normal workflow is detailed below.
+<p>When you've got the time and the ability, feel free to move any patch
+that catches your eye along, whether or not it's been assigned to you.&nbsp;
+And if you're assigned to a patch but aren't going to take reasonably quick
+action (for whatever reason), please assign it to someone else ASAP:&nbsp;
+at those times you can't actively help, actively get out of the way.
+<p>If you're an expert in some area and know that a patch in that area
+is both needed and non-controversial, just commit your changes directly
+-- no need then to get the patch mechanism involved in it.
+<p>You should add a comment to every patch assigned to you at least once
+a week, if only to say that you realize it's still on your plate.&nbsp;
+This rule is meant to force your attention periodically:&nbsp; patches
+get harder &amp; harder to deal with the longer they sit.
+<br>&nbsp;
+<h4>
+Open</h4>
+
+<blockquote>The initial status of all patches.
+<br>The patch is under consideration, but has not been reviewed yet.
+<br>The status will normally change to Accepted or Rejected next.
+<br>The person submitting the patch should (if they can) assign it to the
+person they most want to review it.
+<br>Else the patch will be assigned via [xxx a list of expertise areas
+should be developed] [xxx but since this hasn't happened and volunteers
+are too few, random assignment is better than nothing:&nbsp; if you're
+a Python developer, expect to get assigned out of the blue!]
+<br>Discussion of major patches is carried out on the Python-Dev mailing
+list.&nbsp; For simple patches, the SourceForge comment mechanism should
+be sufficient. [xxx an email gateway would be great, ditto Ping's Roundup]</blockquote>
+
+<h4>
+Accepted</h4>
+
+<blockquote>The powers that be accepted the patch, but it hasn't been applied
+yet. [xxx flesh out -- Guido Bottleneck avoidable here?]
+<br>The status will normally change to Closed next.
+<br>The person changing the status to Accepted should, at the same time,
+assign the patch to whoever they believe is most likely to be able &amp;
+willing to apply it (the submitter if possible).</blockquote>
+
+<h4>
+Closed</h4>
+
+<blockquote>The patch has been accepted and applied.
+<br>The previous status was Accepted, or possibly Open if the submitter
+was Guido (or moral equivalent in some particular area of expertise).</blockquote>
+
+<h4>
+Rejected</h4>
+
+<blockquote>The patch has been reviewed and rejected.
+<br>When the objections are addressed, the status may change to Open again.
+<br>The person changing the status to Rejected should assign the patch
+back to the submitter, or if it's clear the patch will never be accepted,
+assign it to None.
+<br>Note that SourceForge allows the submitter to overwrite the patch with
+a new version.</blockquote>
+
+<h4>
+Out of date</h4>
+
+<blockquote>Previous status was Open or Accepted or Postponed, but the
+patch no longer works.
+<br>Please enter a comment when changing the status to "Out of date", to
+record the nature of the problem and the previous status.
+<br>Also assign it back to the submitter, as they need to upload a new
+version (note that SourceForge will not allow anyone other than the original
+submitter to update the patch).</blockquote>
+
+<h4>
+Postponed</h4>
+
+<blockquote>The previous status was Open or Accepted, but for some reason
+(e.g., pending release) the patch should not be reviewed or applied until
+further notice.
+<br>The status will normally change to Open or Accepted next.
+<br>Please enter a comment when changing the status to Postponed, to record
+the reason, the previous status, and the conditions under which the patch
+should revert to Open or Accepted.&nbsp; Also assign the patch to whoever
+is most likely able and willing to decide when the status should change
+again.</blockquote>
+
+<h4>
+Deleted</h4>
+
+<blockquote>Bit bucket.
+<br>Use only if it's OK for the patch and its SourceForge history to disappear.
+<br>As of 09-July-2000, SF does not actually throw away Deleted patches,
+but that may change.</blockquote>
+
+<h3>
+<a NAME="a2"></a>A.2.: Python Patch Submission Guidelines</h3>
+<b>New: CNRI is no longer involved in Python patches.</b> We no longer
+request legal disclaimers. Also, We're now using the SourceForge Patch
+Manager (a single mailing list became unmanageable).
+<p>Many people contribute patches to Python. We've set up a new system
+to deal with these. Here are the main guidelines:
+<ul>
+<li>
+<b>Submit your patch to the <a href="http://sourceforge.net/patch/?group_id=5470">patch
+manager</a> interface at <a href="http://sourceforge.net/project/?group_id=5470">SourceForge</a>.</b>
+We strongly recommend that you <a href="http://sourceforge.net/account/register.php">register
+with SourceForge</a> before submitting a patch. If you send patches directly
+to Guido you introduce an extra delay. Ditto for the "patches@python.org"
+mailing list address; this address should no longer be used for patch submission.
+The patch manager is for
+<b>patches</b> only; if you have a problem or
+suggestion but don't know how to write the code for it, use the <a href="http://www.python.org/search/search_bugs.html">Python
+Bugs List</a> instead. The bugs list is searchable; if you have a problem
+and you're not sure if it has been reported or fixed already, this is the
+first place to look. (There used to be a separate TODO list; we now prefer
+that you use the bugs list for suggestions and requests too.)</li>
+
+<br>&nbsp;
+<p>&nbsp;
+<br>&nbsp;
+<br>&nbsp;
+<p><b>Submit documentation patches the same way.</b> When adding the patch,
+be sure to set the "<b>Category</b>" field to "<b>documentation</b>". For
+documentation errors without patches, please use the <a href="http://www.python.org/search/search_bugs.html">Python
+Bugs List</a> instead.
+<li>
+We like context diffs. We grudgingly accept unified diffs.
+<b>Straight
+("ed-style") diffs are right out!</b> If you don't know how to generate
+context diffs, you're probably not qualified to produce high-quality patches
+anyway &lt;0.5 wink>.</li>
+
+<li>
+We appreciate it if you send patches relative to the <a href="http://sourceforge.net/cvs/?group_id=5470">current
+CVS tree</a>. These are our latest sources. It's almost a year since Python
+1.5.2 was released, and many source files have been touched in more or
+less significant ways; a patch relative to Python 1.5.2 can cause a lot
+of extra pain to apply right. Even a patch relative to the latest alpha
+or beta release may be way out of date.</li>
+
+<li>
+Please add a succinct message to your SourceForge entry that explains what
+the patch is about that we can use directly as a checkin message. Ideally,
+such a message explains the problem and describes the fix in a few lines.</li>
+
+<li>
+For patches that add or change functionality: please also update the <b>documentation</b>
+and the <b>testcases</b> (the Lib/test subdirectory). For new modules,
+we appreciate a new test module (typically test/test_spam.py). In this
+case, there's no need to mail the documentation to a different address
+(in fact, in order to verify that the bundle is complete, it's easier to
+mail everything together).</li>
+
+<li>
+There are a variety of additional <a href="http://www.python.org/patches/style.html">style
+requirements</a>. Please have a look at these before writing new code.
+Also have a look at the general <a href="http://www.python.org/doc/essays/styleguide.html">Python
+Style Guide</a>.</li>
+</ul>
+
+</body>
+</html>