Author: chip
Date: Wed Oct 12 09:59:20 2005
New Revision: 9468

Added:
   trunk/docs/pdds/pdd00_pdd.pod
      - copied, changed from r9421, trunk/docs/pdds/clip/pdd00_pdd.pod
Log:
New PDD: PDD guidelines.

Copied: trunk/docs/pdds/pdd00_pdd.pod (from r9421, 
trunk/docs/pdds/clip/pdd00_pdd.pod)
==============================================================================
--- trunk/docs/pdds/clip/pdd00_pdd.pod  (original)
+++ trunk/docs/pdds/pdd00_pdd.pod       Wed Oct 12 09:59:20 2005
@@ -5,47 +5,56 @@
 
 docs/pdds/pdd00_pdd.pod - Parrot Design Documents
 
+=head1 VERSION
+
+$Revision$
+
 =head1 ABSTRACT
 
-This document defines the standard format for the Parrot Design Documents 
-(PDDs) - the basic descriptions/plans for the design of Parrot.
+This document defines the content and format of Parrot Design
+Documents (PDDs).
 
 =head1 DESCRIPTION
 
-The original intent of the Parrot Design Documents (which themselves were
-initially Perl Design Documents) was threefold:
+PDDs are living documents, which should be maintained to reflect the
+current and contemplated design of Parrot.
+
+The key aspects of Parrot's design are its interface to the outside
+world -- its feature set -- and its internal structure, both in code
+and in the broader project.  Thus, PDDs descirbe Parrot's:
 
 =over 4
 
-=item 1
+=item *
+
+I<Codable interfaces>: headers, functions, macros, file formats, etc.
+
+=item *
 
-To provide a clear indication of the direction of current development
-(essentially, a road map from an abstract idea to a concrete implementation).
+I<Structural requirements> that the implementation must obey:
+resource usage, portability, modularity, interdependency, etc.
 
-=item 2
+=item *
 
-To act as a historical record of the rationale behind the decision, in order 
-to provide context to future developers, who may not have been familiar  with
-the original discussion.
+I<Abstract models> that the implementation expresses or conforms to.
+These models are in some sense meta-designs, because they provide
+guidance for the evolution of the current design.
 
-=item 3
+=item *
 
-To provide a historical, technical and cultural perspective for future 
-development work.  Re-implementation or even tangential tasks need only 
-address what has changed since the original PDD.
+More? - FIXME
 
 =back
 
-Needless to say, things didn't work out this way. Some of the context 
-discussed above is now documented in the F<*.dev> documents (see the
-F</docs/dev> directory); much of it remains undocumented. The portions that
-have wound up being documented as PDDs are the basic design of the Parrot
-interpreter. In other words, the PDDs describe the B<features that the
-interpreter should implement>. They B<should not> discuss the details of the
-actual implementation (unless they absolutely have to) or the choices leading
-to that particular implementation; these are details that should go in the
-relevant F<*.dev> file. On the other hand, they B<should> detail the trade-offs
-made in the actual design.
+PDDS B<should not> discuss the implementation details or trade-offs,
+unless they absolutely have to.  Such implementation documentation
+should go in the relevant F<*.dev> file.  On the other hand, PDDs
+B<should design trade-offs, i.e. the paths not chosen.
+
+These guidelines may seem fuzzy.  The line between "design" and
+"implementation" is a murky one.  Still, please try to adhere to this
+design for Parrot design documentation.  How you implement it is up to
+you.  :-)
 
 =head1 IMPLEMENTATION
 
@@ -56,22 +65,23 @@ future PDDs.
 
 =head2 FORMAT
 
-All PDDs will be written in POD parseable by the current stable release of
-Perl. Although XML is a viable solution and has its vocal supporters, and
-although Parrot is intended to be used by many groups outside of the Perl
-community, we have chosen POD for its simplicity and ease of  reading in
-plaintext form. Conversion to other formats (e.g. HTML) is encouraged, but the
-POD version should remain the master copy.
-
-All PDDs will be written in English.  British, American, or Other is the choice
-of the author.  Translation to other languages, like all Perl documentation, is
-encouraged.  (See S<L<"PDD TRANSLATIONS">>.)
+All PDDs will be written in POD parseable by the current stable
+release of Perl.  Although XML is a viable solution and has its vocal
+supporters, and although Parrot is intended to be used by many groups
+outside of the Perl community, we have chosen POD for its simplicity
+and ease of reading in plaintext form.  Conversion to other formats
+(e.g. HTML) is encouraged, but the master version must be POD.
+
+All PDDs will be written in English.  The choice of British, American,
+or Other is up to the author.  Translation to other languages, like
+all Perl documentation, is encouraged.  (See S<L<"PDD TRANSLATIONS">>.)
 
-All PDDs will contain the following information:
+See L<pdd_template.pod> for the basic structure of a PDD.  Notes on
+the sections:
 
 =over 4
 
-=item TITLE:
+=item NAME:
 
 A short, general description of a specific part of the Parrot design. This may
 be a particular subsystem (e.g. the garbage collector), or a  more general
@@ -79,109 +89,16 @@ topic (e.g. basic Parrot datatypes).
 
 =item VERSION:
 
-Contains current and selected historical metadata on the PDD itself.
-
-=item CURRENT:
-
-Contains the following information, current as of the date of submission.
-
-=over 4
-
-=item Maintainer
-
-Required.  The name and current email address for the point of  contact for the
-PDD. This is the person to whom questions, comments,  and patches should
-generally be addressed. This need not be the author  of the document.
-
-(In practice, non-trivial changes to the PDDs should probably be  discussed on
-the perl6-internals mailing list before they take place).
-
-=item Class
-
-Required.  The area of Parrot the PDD covers.  This allows related PDDs to be
-logically grouped. The current list of valid classes is:
-
-    Internals     - on the design of the Parrot interpreter
-    Documentation - on Parrot documentation
-    Meta          - on the Parrot project as an entity
-    Testing       - on the testing of Parrot
-
-It is expected that most PDDs will fit into a single class, but in  principle a
-may belong to more than one class. However, peripheral excursions into the
-scope of another class should not warrant an  actual classification (i.e. you
-shouldn't classify something as  C<Testing> simply because you happen to
-mention potential tests at one or two points in the text).
-
-=item PDD Number
-
-Required.  No two PDDs should have the same number. PDD numbers are assigned by
-whoever commits the PDDs to the repository, subject to the approval of the
-Pumpking.
-
-=item Version
-
-Required.  A one-up integer reflecting each public revision of a PDD. This 
-reflects the version of the document itself, and not version of the standard
-the document may provide.
-
-=item Status
-
-Required. The current state of the PDD.  Currently, the only  classifications
-in use are C<Informational> and C<Developing>. We hope to eventually add
-C<Standard>. All three are detailed below:
-
-=over 4
-
-=item Informational
-
-A PDD discussing possible design choices for a particular area of Parrot. This
-is non-prescriptive -- the final design may look nothing like the suggested one
--- but provides a useful way to document detailed design concepts for later
-reference. For a good example, see  F</docs/pdds/pdd14_bignum.pod>.
+Document version.  Since Parrot is currently kept in a Subversion
+repository, the $$-delimited keyword "Revision" will do nicely.
 
-=item Developing
+=item MAINTAINER I<(optional)>:
 
-An acceptable (at least, in theory) PDD that needs further fleshing out  and
-fine tuning. The PDD, as well as the implementation it describes, are  both
-under official development by the Parrot development community.
-
-=item Standard (Version #)
-
-A frozen snapshot of the design as it applies to Parrot at a particular moment
-in time. The version number should reflect that version number of Parrot that
-the standard was first applied to. C<Developing> PDDs  are expected to
-eventually become C<standard>.
-
-=back
-
-=item Last Modified
-
-Required.  The date of the last submission.
-
-=item PDD Format
-
-Required.  The specific PDD Standard that the PDD adheres to. This allows 
-scripts to better parse PDDs of multiple aging formats. The format  currently
-in use is PDD format 1.
-
-=item Language
-
-Optional.  The language that the PDD is written in.
-
-=back
-
-=item HISTORY:
-
-A list of free-flow descriptions of significant metadata changes, such as
-status changes, or change of maintainers.  Each entry should include the
-version, date, and nature of the change.  This provides a quick historical
-overview of the major metadata changes of a PDD.  This field is not to be used
-for a comprehensive list of alterations to the document.
-
-=item CHANGES:
-
-A summary of the changes since the last version.  A comprehensive change log
-should be kept, but only within a supporting document.
+The name and current email address for the point of contact for the
+PDD. This is the person to whom questions, comments, and patches
+should generally be addressed. This need not be the author of the
+document.  By default, all PDDs are maintained by the Parrot
+Architect.
 
 =item ABSTRACT:
 
@@ -220,8 +137,7 @@ The PDD author may add any additional se
 
 Proposed PDDs should be submitted to the perl6-internals mailing list (located
 at [email protected]) for discussion, criticism and general kibitzing.
-Acceptance of a particular PDD is ultimately up to the current Pumpking and/or
-the internals chief (a.k.a. Dan).
+Acceptance of a particular PDD is ultimately up to the Parrot Architect.
 
 =head2 PDD TRANSLATIONS
 
@@ -232,63 +148,19 @@ should be met.
 
 =item *
 
-The C<Maintainer> field should reflect who did the translation.
-
-=item *
-
-The C<Version> number should match the original document's C<Version> number. 
-Should multiple translated versions of a single original PDD be done (to
-correct spellings, etc.), the revision specific to that document version should
-be included in parentheses following the version number.
+The C<MAINTAINER> section should record who made the translation.
 
 =item *
 
-Attributions in the C<HISTORY> section should be left alone.
+The C<VERSION> section should include an additional note of the
+translation version.
 
 =back
 
-=head2 PDD STATUS CHANGES
-
-Any change to the status of a particular PDD should be approved by the current
-Pumpking and/or the internals chief.
-
-=head2 AVAILABILITY
-
-All C<Informational>, and C<Developing> PDDs should be readily available,  in a
-centralized location, to at least the current Parrot development  circles.  All
-C<Standard> PDDs should be readily available, in a  centralized location, to
-the general public.
-
 =head1 ATTACHMENTS
 
-None.
+(none)
 
 =head1 REFERENCES
 
-Dan Sugalski's original PDD guidelines at
-L<http://www.mail-archive.com/[email protected]/msg01766.html>
-
-=head1 VERSION
-
-=head2 CURRENT
-
-    Maintainer: Simon Glover <[EMAIL PROTECTED]>
-    Class: Meta
-    PDD Number: 0 
-    Version: 2
-    Status: Developing
-    Last Modified:  20 February 2004
-    PDD Format: 1
-    Language: English
-
-=head2 HISTORY
-
-    v2 substantially rewritten on 20 Feb 2004 by Simon Glover
-    v1 created on 7 Dec 2000 by BCWarnock <[EMAIL PROTECTED]>
-    v1 promoted to Developing as PDD 0 on 20 February 2001 by Dan Sugalski.
-
-=head1 CHANGES
-
-    Substantially rewritten to reflect what the PDDs actually are (rather
-    than what we hoped they would be 3+ years ago). 
-
+(none)

Reply via email to