what i came to pull together the material for the proposal template, i found
that it didn't really fit into the annotation template format originally
conceived. so, here is a first draft of a guide for proposals containing a
template. it's rough and ready but the polish can be applied later.

the heraldry proposal works quite well for me so the format is a little
closer to the less structured format than the original discussion. i think
that this is good since it produces better prose and less box ticking. those
who have objections to this less structure approach should probably jump in
here (rather than in line).

comments in line, please. it's a long post so please cut everything which is
not relevant to the comment.

- robert

Guide For Proposal Creation
=====================

Abstract
------------

This document is descriptive not normative. It describes ways to go about
drawing up a proposal for submission. It is not an inflexible standard but
does respresent a consensus condensed from previous discussions on the
incubator general list.

Background
-----------------

Entry to the incubator is a democractic process. The incubator pmc votes on
whether to accept or not. The proposal is the document upon which the pmc
votes. So, though it's not necessary or sufficient to have a good proposal,
a good proposal document will increase the chances of a positive result.

The proposal is (in some ways) a manifesto. It should shape the evolution of
the product at apache. A lot of the information contained should be included
in the initial project website.

Help Wanted!
-------------------
Help to improve the system by posting patching for this document to the
incubator section of JIRA.


Formulating A Proposal
=================

Start by RTFM. The Entry To The incubator is a good place to start this
process.

Spend some time reviewing the mailing lists and subscribe to
[EMAIL PROTECTED] The mailing lists are the canonical form of
communication and
decision making at apache. The documentation represents an attempt to codify
the consensus formed on list.

Before drawing up a lengthy proposal, recruit a champion. [links to other
documentation explaning role of champion] The champion knows how apache work

and should be able to navigate the process.

Review recent proposals [links to the wiki] and how they have been received.

The incoming community needs to work together before presenting this
proposal to
the incubator. Think about goals and about the reasons for coming to apache.


Once the preparatory work is done, the proposal should be presented to the
incubator.  This is done by posting the proposal
in plain text in a email whose subject is prefixed with [PROPOSAL].

Expect to work on improving the template on list after presenting it. The
wiki is an excellent way to develop a proposal so consider creating a wiki
page containing the same content and supplying a link. Interested parties
may wish to add themselves to the watch list for the page so that received
email notifications
when the page is changed.

When the proposal seems finish and some sort of consensus has emerged, the
proposal can be put to the vote.

Proposal Template
==============
The aim of presenting a template with examples and comments is educational.
Proposals are not required to adopt this format. If you can see a better
way: great.

Every proposal is different. There may be sections which don't seem to be
useful. It's fine to miss them out and add new ones that the proposal seems
to need.

Abstract
------------

<commentary>
What is the proposed project? This is a short descriptive summary of the
project. Ideally one sentence in length.

It is important that the technical vision for an open source project can be
communicated in a short paragraph. This paragraph will most like be used for
the board resolution used to create the official project upon graduation,
may be used as the first paragraph on the web site and as the DOAP
description.
</commentary>

Examples:
 Geronimo will be a J2EE compliant container.
 Heraldry will develop technologies around the emerging user-centric
identity space.
 Yoko will be a CORBA server.

Proposal
-------------
<commentary>
A lengthier description of the proposal. Should be reasonably declarative.
More discursive material can be included in later sections.
</commentary>

Background
-----------------
<commentary>
For some projects, it may be useful to provide context. If you proposal
contains words that  for which there is not a consensus definition, please
explain what you mean by them. if the problem  domain is likely to be
unfamiliar to many then please outline the domain.

This content should be capable of being safely ignored by any domain
experts.

This material should probably find an eventual home on the project website.
</commentary>

Rationale
-------------
<commentary>
Why does this project need to exist and why should it be adopted by apache?

More discursive material is probably better in this section rather than in
the proposal.

This content should be ignorable for those for whom the need is obvious.
</commentary>

Initial Goals
-----------------
<commentary>
Only include this section if it is not obvious. If the proposal is complex
(probably involving multiple code bases) then people may worry about it's
practicallity and whether it may drag in too much apache energy to make it
happen.
This is a good place to explain the plan and demonstrate that the proposal
is feasible and has been thought through.
</commentary>

Example (heraldry)
           * Expansion of Yadis and OpenID libraries into additional
languages beyond the existing Python, Ruby, Perl, and PHP libraries
           * OpenID authentication specification revision to fix known
security considerations, investigate compatibility with the DIX IETF
proposal, describe Yadis integration, and allow either an URL or XRI be used
as the End User's Identifier
           * Continue the development of a data transfer protocol on top of
OpenID to allow the exchange of profile data as well as other secure
messages
           * Investigate existing mechanisms for profile exchange, namely
Sxip 2.0 and SAML, and investigate how they would be layered atop OpenID
           * Integration of the OpenID Authentication protocol with the
Higgins framework to provide desktop integration
           * Extension of OpenID to support non-browser based
authentication use cases. ie authentication to a Subversion server, creation
of mod_authnz_openid, using your OpenID Identity without modifying the svn
client-side tool

Current Status
---------------------
<commentary>
It is sometimes useful for proposal around existing projects to compare
where they are know against principles and ideals. A few topics:
       * Meritocracy
       * Community
       * Core Developers
       * Alignment

[need more content describing these attributes]

Some proposals describe this section as criteria.
</commentary>

Known Risks
-------------------
<commentary>
An exercise in self-knowledge.
Risks don't mean that a project is unacceptable.
It is useful to collect together material to prempt questions about possible
risks.
Not all projects will need to address all points.

Some possible topics:
       * Orphaned products
             [needs improvements?] This is the right place for the
proposers to publically state their commitment to future development. It
takes quite a while to recruit a diverse development community. So Apache
needs to be confident that those already working on the product are still
committed.
           example:
               (YOKO) "The contributors are leading vendors in this space.
There is no risk of any of the usual warning signs of orphaned or abandoned
code."

       * Inexperience with open source
              [needs improvements?] One of the reasons why many closed
project choose to move to here is the experience of Apache in the open
source space. But this means an invest of energy by Apache so many people
look for a willingness to learn and to give back to the community.

       * Homogenous developers -
              [needs improvements?] Healthy projects need a mix of
developers. Open development means a commitment to encouraging a diverse mix
of developers.

       * Reliance on salaried developers
              [needs improvements?] People worry about salaried developers
who are interested in working on this project only whilst they are employed
to do so.

       * Relationships with other Apache products
              [needs improvements?]
              People are concerned about projects that work just inside
their own little bubble. Apache encourages projects to open to collaboration
with other open source projects both within apache and without. This may be
existing links but is also a good place to talk about potential future links
and plans.
              Apache allows different projects to have competing or
overlapping goals. However, this should mean friendly competition with
coorporation whenever this makes sense. It is not always obvious to all
whether the proposers see themselves as direct competitors with an existing
project, indirect competitors (same problem space, different ecological
niche) or just peers with some overlap. In the case of indirect competition,
it may be important that the abstract describe accurately the niche.

       * A fascination with the Apache brand
              [needs improvements?] Concerns have been raised in the past
that some projects are proposed just to generate positive publicity for
themselves. This is a chance to build bridges with the community after past
misdemeanors (for example, if any of those associated with the proposal have
- in the past - sort to associate themselves with the Apache brand in
factually incorrect ways) and promise good conduct for the future.
</commentary>


Documentation
----------------------
<commentary>
References to further reading material
</commentary>

Initial Source
-------------------
<commentary>
Describes where the proposed code base comes from.
</commentary>

Source and Intellectual Property Submission Plan
------------------------------------------------------------------------
<commentary>
More complex proposals (typically involving mutliple code bases) may prefer
to draw up an initial plan for the submission of the code in a separate
section. Demonstrates that the proposal is practical.
</commentary>

External Dependencies
---------------------------------
<commentary>
External dependencies for the initial source is important. Apache has policy
about dependencies allowed for projects. These are (to some extent) relaxed
for projects under incubation. Listing dependencies and licenses allows any
possible problems to be highlighted and the appropriate actions planned.
</commentary>

Cryptography
-------------------
<commentary>
If the proposal involves cryptographic code either directly or indirectly,
Apache needs to know so that the relevant export documentation can be
obtained.
</commentary>

Required Resources
-----------------------------
<commentary>
       Create a list of resources that the Apache infrastructure will
supply for this project.

       * Mailing lists
            Minimum project-private (for pmc) project-dev listing
            It is often best to start with these minimum lists. The initial
focus should be recruiting new developers. Developers need to get into the
habit of reading and checking commit messages.  As momentum is gained, the
community may decide that to create commit and user lists in the usual way.
            However, existing open source projects with active user lists
may need to start with separate lists from the start.

       * subversion directory
       * issue tracking
            This means choosing either JIRA or Bugzilla.

       Other resources such as continuous integration and so on should be
added by the podling later in the usual way as momentum is gained.

       If the proposal requires other special infrastructure, it is best to
give an explaination. The Apache infrastructure team usually takes some
convincing before allowing new services on Apache hardware
</commentary>


Initial Committers
-------------------------
<commentary>
       List of committers used to bootstrap the community. Note which have
submitted CLAs.
       It is a good idea to submit CLAs at the same time as proposal and
before acceptance. There is nothing lost by having a CLA on file at Apache
but they do take some time to process.
</commentary>

Affiliations
---------------
<commentary>
Little bit of a controversial subject. Committers at apache are individuals
and work here on their own behalf and are judged on their merits not their
affiliations. However, it is useful (in the spirit of full disclosure) for
any current affiliations which may effect their independence to be listed.
For example, those in a salaried positions whose job is to work on the
project should list their affiliation. Having this list helps to judge how
much diversity exists in the initial list and so how much work there is to
do.

It's probably best to do this in a separate section away from the committers
list.
</commentary>

Sponsors
-------------
       Champion
       <commentary>
[needs improvements?] A champion should be found before the proposal is
submitted.
       </commentary>
       Mentors
       <commentary>
[needs improvements?]
           The list of mentors may well be established during development
of the proposal. The absolute minimum is a single mentor but the current
consensus is that (at least) three mentors will make things go more
smoothly. Three mentors gives a quorum and allows the project more autonomy.


           The number of mentors a podling can have is limited only by the
energy and interest of those eligable to mentor.
       </commentary>
       Sponsoring Entitry
       <commentary>
This is the organisational unit within Apache taking resposibility for this
proposal.
The sponsoring entity can be:
       the board
       another Apache project
       the incubator pmc

Unless there are strong links to an existing pmc, it is recommended that the
proposal asked that the incubator pmc to act as sponsor.

Note that the final destination within the Apache organisational structure
will be decided upon graduation.
       </commentary>

Reply via email to