You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by gr...@locus.apache.org on 2000/11/10 03:13:20 UTC

cvs commit: xml-cocoon/xdocs 3rdparty.xml contrib.xml

greenrd     00/11/09 18:13:20

  Modified:    xdocs    contrib.xml
  Added:       xdocs    3rdparty.xml
  Log:
  Contrib system nearly ready!! comments on licensing policy welcomed
  
  Revision  Changes    Path
  1.2       +143 -7    xml-cocoon/xdocs/contrib.xml
  
  Index: contrib.xml
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/xdocs/contrib.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- contrib.xml	2000/10/20 18:24:03	1.1
  +++ contrib.xml	2000/11/10 02:13:19	1.2
  @@ -4,17 +4,58 @@
   
   <document>
    <header>
  -  <title>Making a Contribution to Cocoon</title>
  +  <title>Making a Contribution to Apache Cocoon</title>
     <authors>
      <person name="Robin Green" email="greenrd@hotmail.com"/>
  +   <person name="Stefano Mazzocchi" email="stefano@apache.org"/> 
     </authors>
    </header>
   
    <body>
   
    <s1 title="Introduction">
  +
  +  <p>
  +   The Cocoon Project is an <link href="http://www.opensource.org/">Open Source</link>
  +   volunteer project under the auspices of the
  +   <link href="http://www.apache.org/">Apache Software Foundation (ASF)</link>,
  +   and, in harmony with the Apache webserver itself, it is released under
  +   a very open license.
  +   This means there are many ways to contribute to the project - either
  +   with direct participation (coding, documenting, answering questions,
  +   proposing ideas, reporting bugs, suggesting bug-fixes, etc..) or by resource
  +   donations (money, time, publicity, hardware, software, conference
  +   presentations, speeches, etc...).
  +  </p>
     <p>
  -   There are many ways of contributing to the Cocoon project. This document is mainly about
  +   To begin with, we suggest you to subscribe to the
  +   <connect href="mail-lists.xml">Cocoon mailing lists</connect>
  +   (follow the link for information on how to subscribe and to access the mail
  +   list archives), to checkout the <link href="http://xml.apache.org/websrc/index.cgi/xml-cocoon/">
  +   latest and greatest code</link> (which you find in the xml-cocoon module in
  +   the xml.apache.org CVS code repository, or from the
  +   <link href="http://xml.apache.org/from-cvs/xml-cocoon/">CVS snapshots</link>),
  +   control the <connect href="todo.xml">todo</connect>
  +   list and jump in. Document writers are usually the most wanted people so if
  +   you like to help but you're not familiar with the innermost technical details, don't worry:
  +   we have work for you!
  +  </p>
  +  <p>
  +   For financial support in particular, the Cocoon Project and the ASF in general
  +   is closely collaborating with the <link href="http://www.sourcexchange.com">Collab.net
  +   SourceXchange</link> program that will provide a legal, solid and
  +   well-established resource for money collecting to fund software production
  +   under the open source flag. Please, feel free to contact directly
  +   the ASF President and Collab.net co-founder <link href="mailto:brian@collab.net">Brian
  +   Behlendorf</link> for more information on how to contribute financially to the
  +   advancement of this project.
  +  </p>
  +
  + </s1>
  +
  + <s1 title="Help Wanted Here">
  +  <p>
  +   The rest of this document is mainly about
      contributing new or improved code and/or documentation, but we would also be glad to have
      extra help in any of the following areas:
     </p>
  @@ -27,19 +68,114 @@
       writing, some known bugs are informally listed on <connect href="todo.xml">To Do</connect>, but
       eventually a bug database should be made available on the Apache site).</li>
      <li>Specifying/analysing/designing new features for Cocoon 2 - and beyond. (If you wish to get involved
  -    with this, please join <code>cocoon-dev@xml.apache.org</code>, install and try out Cocoon 2
  -    and read some of the <link href="http://mail-archives.apache.org">mail archives</link>.
  +    with this, please join <code>cocoon-dev@xml.apache.org</code>
  +    (you may also want to join <code>xsp-dev@xml.apache.org</code>), install and try out Cocoon 2
  +    and read some of the <link href="http://mail-archives.apache.org/">mail archives</link>.
       You should have a strong "fluency" in XML technologies, Java and a basic understanding of
       the Cocoon 2 architecture - don't just say "it should have XYZ" without reading anything first -
  -    chances are, someone's already thought of that feature!)</li>
  +    because chances are, someone's already thought of that feature!)</li>
      <li>Packaging easy-to-install packages (such as RPMs) for the myriad of possible configurations out
       there. (The Cocoon project does not maintain anything but the basic <code>.zip</code> and
       <code>.tar.gz</code> packages, but anyone is welcome to build their own specific packages and
       announce them on <code>cocoon-users</code>)</li>
  -   <li>... and there is just one other thing - don't forget to tell everyone who asks how great Cocoon is! ;-)</li>
  +   <li>... and there is just one other thing - don't forget to tell everyone who asks how great Cocoon is! ;-)
  +    The more people that know about and start to use Cocoon, the larger the pool of
  +    potential contributors there will be
  +    - so, please, help us by placing the cocoon logo somewhere in your
  +    site to indicate that you are using and supporting the Cocoon Project.
  +   </li>
  +  </ul>
  + 
  +  <p>
  +   Thank you very much. <img src="images/cocoon-small.jpg" alt="Powered by Cocoon"/>
  +  </p>
  + </s1>
  +
  + <s1 title="Contributions of Code and Documentation">
  +  <p>We are starting to use an informal system for accepting contributions to Cocoon.
  +   The process varies depending on whether the contribution is a modification (i.e. patch)
  +   or a fairly standalone item, and whether you have commit access (committers have been
  +   granted access by a vote of confidence, so they are assumed to be trustworthy enough
  +   to make changes directly in CVS. If you submit many good patches, you may be 
  +   nominated as a committer yourself!)</p>
  +
  +  <p>If your contribution requires changing more than a few lines of Cocon (code or
  +   documentation), then it counts as a <strong>patch</strong>. If you have a patch and
  +   would like to see it incorporated into the Cocoon distribution, take note of the Licensing
  +   Requirements listed below, and then read the <connect href="patches.xml">Patch management
  +   </connect> page for more information.
  +  </p>
  +
  +  <p>Otherwise (that is, if it does not require patching or you are not particularly interested in
  +   having it included in the main distribution), your code and/or
  +   documentation can be listed on the 
  +   <connect href="3rdparty.xml">Third-Party Contributions</connect> page.
  +   The rationale for this split is that core patches may fix important issues, and may 
  +   require timely attention if they are not to go
  +   out-of-date and become useless, but other contributions can simply be downloaded and
  +   applied by users who wish to use them.
  +  </p>
  +
  +  <p>A typical contribution (not a patch) may go through the following stages:
  +  <ol>
  +   <li>Posted to cocoon-users with a URL to download it from.</li>
  +   <li>Listed on 3rdparty.html by a maintainer. [No requirements, other than relevance (at the moment).]</li>
  +   <li>Inclusion into the <code>contrib</code> directory,
  +    which is for 3rd-party contributions that have been tested, but are not necessarily
  +    mature enough or general enough for the main distribution. [Must be tested at least as
  +    specified below. See also Licensing Requirements below.]
  +   <li>Inclusion into the main distribution. [Committers must be confident that it should work properly in 
  +    most/all environments, and it must be considered sufficiently useful and general to go into Cocoon. See also
  +    Licensing Requirements below].</li>
  +  </ol>
  +  
  +  <s2 title="Testing Requirements for Cocoon Contrib and Distribution">
  +   <note>These tests do not apply to Cocoon 2 because it is designed
  +    to have different minimum requirements. As Cocoon 2 is still alpha we are not at a rigourous
  +    test stage yet. Stay tuned!</note>
  +
  +   <p>All new code should be tested under the following servlet engines:</p>
  +   <ul>
  +    <li>Apache JServ 1.1.2 (NOTE: This uses Servlet API 2.0)</li>
  +    <li>Apache Tomcat 3.1</li>
  +    <li>Resin 1.2.0</li>
  +   </ul>
  +   <p>It should also be tested on the following:</p>
  +   <ul>
  +    <li>A Windows operating system</li>
  +    <li>A UNIX-type operating system</li>
  +    <li>A JDK version 1.1.x</li>
  +   </ul>
  +   <p>And obviously, it should be tested against the current CVS snapshot of Cocoon!</p>
  +
  +   <p>This testing is designed to iron out the most common kinds of incompatibilty
  +    problems (Servlet >2.0 requirements; platform-dependent assumptions; JDK >1.1 code).
  +    These requirements are, of course, open to review and discussion. Note that
  +    the contributor is not required to do the testing - indeed it is probably better
  +    if someone else tests it, because the contributor might be tempted to do less
  +    than thorough testing!</p>
  +  </s2>
  +
  + <s2 title="Licensing Requirements for the Cocoon Distribution">
  +  <p>To avoid legal problems, the Apache Project Management Committe (PMC) have agreed on
  +   a policy for under what licensing code can be accepted into Apache projects:</p>
  +  <ul>
  +   <ol>Source code files must be under the Apache license and must have copyright assigned to
  +    the Apache Software Foundation.</ol>
  +   <ol>Jar files need only be released under a license that permits free redistribution
  +    and does not cover new files added to the jar/library (so the GPL and LGPL are not allowed,
  +    but MPL and Apache licenses are, for example).</ol>
     </ul>
  +  <p><strong>By submitting a patch, you signify your understanding and acceptance of these
  +   conditions</strong> - like most open source projects, 
  +   we do not have the resources nor the inclination to obtain signed statements from all
  +   contributors!</p>
   
  -  <p></p>
  +  <p><strong>Note:</strong> Since the <code>contrib/</code> directory of Cocoon CVS contains
  +   third-party. completely optional extensions, one of the above requirements is relaxed.
  +   Code in the contrib directory does not have to have its copyright assigned to the ASF
  +   - but it must still be released under the Apache license.</p>
  + </s2>
    </s1>
   </body>
   </document>
  
  
  
  1.1                  xml-cocoon/xdocs/3rdparty.xml
  
  Index: 3rdparty.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <!DOCTYPE document SYSTEM "./dtd/document-v10.dtd">
  
  <document>
   <header>
    <title>Third Party Contributions</title>
    <authors>
     <person name="Robin Green" email="greenrd@hotmail.com"/>
     <person name="Ovidiu Predescu" email="ovidiu@cup.hp.com"/> <!-- author of emacs editing functions -->
    </authors>
   </header>
  
   <body>
  
   <s1 title="How to Contribute">
    <p>
     See <connect href="contrib.xml">How to contribute to Apache Cocoon</connect>.
    </p>
  
   </s1>
  
   <s1 title="Contributed Components">
    <p>
     These are not necessarily deemed to be high enough quality to be included in the
     core distribution, but they have been tested under <connect href="contrib.xml">
     several key environments</connect>, they are provided under the same license
     as Cocoon, and they are included in the Cocoon distribution under the
     <code>contrib/</code> directory.
    </p>
  
    <p>
     <strong>None as yet!</strong> - although you can expect that some of the links
     listed below will eventually migrate to the "contributed components" level, and
     then maybe even into the main distribution.
    </p>
   </s1>
  
   <s1 title="Patch Queue">
    <p><connect href="patches.xml">Submissions of modifications</connect>
     to Cocoon which are awaiting review. Anyone can
     comment on them on the cocoon-dev mailing list - code reviewers are needed!
     <strong>Use these at your own risk</strong> - although Cocoon has no guarantee
     either, these patches have not been reviewed, let alone accepted.
    </p>
   </s1>
  
   <s1 title="Other Extensions">
    <p>The other extensions listed here are <strong>not endorsed</strong> by the Cocoon
     project either - they are provided as a convenience only. They may or may not work,
     they may or may not be open source, etc.
    </p>
  
    <p>To have a link added to this table, see <connect href="contrib.xml">How to contribute
     to Apache Cocoon</connect>.
    <p>
  
    <table>
     <tr>
      <th>Name and Link</th>
      <th>Type</th>
      <th>Description</th>
      <th>Limitations?</th>
      <th>Licensing</th>
      <th>Contact</th>
     </tr>
     <tr>
      <td><link href="http://perso.club-internet.fr/pedron/ejb/index.html">EJB Taglib</link></td>
      <td>Logicsheet</td>
      <td>An experimental logicsheet to faciliate the use of Enterprise Java Beans from an XSP page</td>
      <td>?</td>
      <td>Freeware</td>
      <td><link href="mailto:pedron@club-internet.fr">Yvon Pedron</link></td>
     </tr>
     <tr>
      <td><link href="http://kenny.socialchange.net.au/~jeff/ldaptaglib/">LDAP Taglib</link></td>
      <td>Logicsheet</td>
      <td>Performs LDAP queries and serializes their results as XML. Alternative to Cocoon's LDAP Processor.</td>
      <td>?</td>
      <td>Freeware</td>
      <td><link href="jeff@socialchange.net.au">Jeff Turner</link></td>
     </tr>
  
     <tr>
      <td><link href="http://www.life.be/~bavo/projects/gpl/cocoon/imapprocessor.tgz">IMAP Processor</link></td>
      <td>Processor</td>
      <td>Sends emails via an IMAP server.</td>
      <td>Not fully functional. Mail taglib in Cocoon distribution is probably better.</td>
      <td><link href="http://www.fsf.org/">GPL</link></td>
      <td><link href="mailto:bavo@life.be">Bavo De Ridder</link></td>
     </tr>
  
     <tr>
      <td><link href="http://www.suranyami.com/cocoon1">UML Docs for Cocoon 1.8</link></td>
      <td>Documentation</td>
      <td>Complete UML diagrams for Cocoon 1.8. UML appears in top pane, javadoc in bottom right.
       Generated using Together 4.1.</td>
      <td>?</td>
      <td>N/A</td>
      <td><link href="mailto:dayv@suranyami.com">David Parry</link></td>
     </tr>
     <tr>
      <td><link href="http://feersumendjinns.com/cocoon/sessions.zip">
       Session toy and number-guessing game</link></td>
      <td>Examples</td>
      <td>Demonstrates use of session variables</td>
      <td>?</td>
      <td>Freeware</td>
      <td><link href="mailto:od@feersumendjinns.com">OD</link></td>
     </tr>
    </table>
  
    <s2 title="Emacs Editing Functions for XSL/XSP">
     <p>Thanks to <link href="mailto:ovidiu@cup.hp.com">Ovidiu Predescu</link> for these.</p>
  
     <p><em>"For those of you that use Emacs/Xemacs to edit XSL/XSP pages, here are some
     handy functions you can use in your .emacs to speed up the editing. They insert
     the commonly used tags in the current buffer, indented and nicely formatted.
     They were developed and used on Xemacs 21.1, but they should work on GNU Emacs
     as well.</em></p>
  
     <p><em>"I'd be curious to know what other little things people use in emacs to speed up
     development."</em></p>
  
  <source><![CDATA[
  (require 'tempo)
  
     (defun get-value-from-minibuffer (display format-string)
       (let ((input (read-from-minibuffer display)))
         (if (string= input "")
             ""
           (format format-string input))))
  
     (tempo-define-template "xsl-template"
      '('&'o'> "<xsl:template"
        (get-value-from-minibuffer "Template name: " " match=\"%s\"")
        ">" 'n'>'n
        "</xsl:template>" '>
        (end-of-line 0)))
  
     (tempo-define-template "xsl-if"
      '('&'o'> "<xsl:if"
        (get-value-from-minibuffer "Test expression: " " test=\"%s\"")
        ">" 'n'>'n
        "</xsl:if>" '>
        (end-of-line 0)))
  
     (tempo-define-template "xsl-for-each"
      '('&'o'> "<xsl:for-each"
        (get-value-from-minibuffer "Select expression: " " select=\"%s\"")
        ">" 'n'>'n
        "</xsl:for-each>" '>
        (end-of-line 0)))
  
     (tempo-define-template "xsp-logic"
      '('&'o'> "<xsp:logic>" '>'n'>'n
        "</xsp:logic>" '>'n
        (end-of-line -1)))
  
     (tempo-define-template "xsp-expr"
      '('&'o'> "<xsp:expr>" '>'n'>'n
        "</xsp:expr>" '>'n
        (end-of-line -1)))
  
     (tempo-define-template "xsl-value-of"
      '('> "<xsl:value-of"
        (get-value-from-minibuffer "Value: " " select=\"%s\"")
        "/>" '>))
  
     (tempo-define-template "xsl-apply-templates"
      '('> "<xsl:apply-templates"
        (get-value-from-minibuffer "Select: " " select=\"%s\"")
        "/>" '>))
  
     (defun my-xml-templates-hook()
       (define-key xml-mode-map "\C-ct" 'tempo-template-xsl-template)
       (define-key xml-mode-map "\C-ci" 'tempo-template-xsl-if)
       (define-key xml-mode-map "\C-cf" 'tempo-template-xsl-for-each)
       (define-key xml-mode-map "\C-cv" 'tempo-template-xsl-value-of)
       (define-key xml-mode-map "\C-ca" 'tempo-template-xsl-apply-templates)
       (define-key xml-mode-map "\C-cl" 'tempo-template-xsp-logic)
       (define-key xml-mode-map "\C-ce" 'tempo-template-xsp-expr))
  
     (add-hook 'xml-mode-hook 'my-xml-templates-hook)
  ]]>
  </source>
  
    </s2>
  
   </s1>
  </body>
  </document>