I've added a few definitions to the document. They
may be wrong; I put them in there because I get the feeling that
my definition of what
In
my email regarding goals, I started by defining what I
thought are three different aspects of this process. In my
mind, it was helpful to keep these separate.
- The development of the specifications themselves;
- The process of ratifying and promoting official
specifications; and
- Certification of implementations of ratified
specifications.
One big difference between the JCP and what we will do
is, I believe, that we won't spin up an entirely new
JSR/team for each version of the specification. In my mind,
the Specification Project is an open source project in the
sense that it is defined by the Eclipse Development Process
(EDP). Team members come and go, but the project itself
persists. That project is responsible for generating all
releases of the specification.
Development of the Specification
The general process that Eclipse open source projects
follows is this:
A project proposal defines a scope of work that
(generally) persists for the lifetime of the project (the
scope can be changed if there is good reason to do so). Each
release cycle starts with planning. For some projects this
planning is an informal list of issues; other projects are
more rigorous (we can decide what level of rigour is
required for a Specification Project). Milestone builds give
the primary stakeholders an opportunity to review the work
and provide feedback. The final release is what is delivered
to the broad community.
The open source project team is responsible for
generating the artifacts associated with the Specification
as part of a release (as specified by the Eclipse
Development Process. I believe that this minimally includes
a document and API, along with pointers to an official
reference implementation and TCK.
Concerns regarding IP flows notwithstanding, I believe
that the EDP almost competely covers this part of the
process. You can, for example, think of the notion of
milestone builds as early draft releases in the JCP sense.
We can decide how or if the Specification Committee reacts
to milestone builds: we could add a formal approval process,
or make it more organic (the primary purpose of milestone
builds is to generate feedback from primary stakeholders;
the Specification Committee and implementors are among the
stakeholders who can provide feedback to incorporate into a
subsequent milestone build).
Ratifying
The Specification Committee, then, is responsible for
ratifying and promoting the output of the open source
project's final release as an official specification. By the
time we get to the point that a Specification Project makes
an official release, the committee (and vendors) should have
consumed milestone builds and provided feedback, so that
final ratification step should be relatively
straightforward.
So, I think that the spec creation and ratification
process looks a little like this:
The project proposal includes a scope, so getting the
Specification Committee's approval seems pretty natural.
Likewise, setting the plan at the beginning of a release
cycle seems like something that the Specification Committee
should get some say in. I tend to prefer a feedback loop
model for milestone builds rather than formal approval (but
am ready to be convinced otherwise).
Strictly speaking, the PMC approves releases, but we may
decide to give the Specification Committee some say here.
The main role of the PMC in the release process is to ensure
that the process has been followed correctly and that the
project is operating according to the open source rules of
engagement.
Ultimately, the Specification Committee has to ratify
(and promote) the specification.
In terms of coordinating the delivery of multiple
specifications, our experience with the simultaneous release
may provide some good answers. More on this later.
Certifying
The final part is the actual process of certifying
implementations. For this, I mostly just have questions.
Thoughts?
I can provide an overview/primer of the EDP on the next
call if there is interest.
Wayne