incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dan Peterson <dpeter...@google.com>
Subject [PROPOSAL] Accept Wave for incubation
Date Tue, 23 Nov 2010 20:16:52 GMT
Hello all,

We'd like to propose Wave for entry into the ASF incubator.

The draft proposal is available at:
http://wiki.apache.org/incubator/WaveProposal
(for your convenience, a snapshot is also copied below)

A wave is a hosted, live, concurrent data structure for rich communication.
It can be used like email, chat, or a document. Wave in a Box (WIAB) is the
name of the main product at the moment, which is a server that hosts and
federates waves, supports extensive APIs, and provides a rich web client.
This project also includes an implementation of the Wave Federation
protocol, to enable federated collaboration systems (such as multiple
interoperable Wave In a Box instances).

As a result of the recent Wave Summit, beyond growing a few new committers,
we've put together the following proposal for migrating the community into
the ASF incubator. More details on the summit & Wave in a Box progress in
this blogpost:
http://googlewavedev.blogspot.com/2010/11/this-weeks-wave-protocol-summit-updates.html

We are looking forward to your feedback and suggestions.

By the way, if you're looking to learn more about the technology related to
wave, you can see the videos and presentations from the recent Wave Summit
in: https://wave.google.com/wave/waveref/googlewave.com/w+rwFyiw47A

Kind regards,
-Dan, on behalf of the Wave Community

P.S. For those on the wave-protocol Google Group (that aren't yet on
general@incubator.apache.org), please participate in this discussion
by sending a message to general-subscribe at incubator dot apache dot org


Apache Wave Proposal (Apache Incubator)

= Abstract =

Apache Wave is the project where wave technology is developed at Apache.
Wave in a Box (WIAB) is the name of the main product at the moment, which is
a server that hosts and federates waves, supports extensive APIs, and
provides a rich web client. This project also includes an implementation of
the Wave Federation protocol, to enable federated collaboration systems
(such as multiple interoperable Wave In a Box instances).

= Proposal =

A wave is a hosted, live, concurrent data structure for rich communication.
It can be used like email, chat, or a document.

WIAB is a server that hosts waves. The best analogy for this is a mail
server with a web client. WIAB is comprised of a few high-level components:
the client and the server. They have the following major functionality
(though this is not an exhaustive list):

 * Client
  *A dynamic web client for users to create, edit, and search waves. Users
can access this client by directly visiting the server in a browser.
  * Gadgets provide the ability to insert, view, and modify the UI --
exposing the Wave Gadgets API (
http://code.google.com/apis/wave/extensions/gadgets/guide.html)
  * A console client that can create and edit waves via a command-line-like
interface.
 * Server
  * Hosts and stores waves. WIAB comes with a default storage mechanism. The
administrators of the server may configure it to use alternative storage
mechanisms.
  * Indexing, allowing for searching the waves a user has access to.
  * Basic authentication, configurable to delegate to other systems.
  * Federation, allowing separate Wave in a Box servers to communicate with
each other using the Wave Federation Protocol (
http://www.waveprotocol.org/federation).
  * Robots, using the Wave Robots API, (
http://code.google.com/apis/wave/extensions/robots/) may interact with waves
on a WIAB instance.

= Background =

Wave expresses a new metaphor for communication: hosted conversations. This
was created by Lars and Jens Rasmussen after observation of people's use of
many separate forms of communication to get something done, e.g, email,
chat, docs, blogs, twitter, etc.

The vision has always been to better the way people communicate and
collaborate. Building open protocols and sharing code available in an open
and free way is a critical part of that vision. Anyone should be able to
bring up their own wave server and communicate with others (much like SMTP).

We hope this project will allow everyone to easily gain the benefits of Wave
with a standard implementation of Wave – in a box.

= Rationale =

Wave has shown it excels at small group collaboration when hosted by Google.
Although Wave will not continue as a standalone Google product, there is a
lot of interest from many organizations in both running Wave and building
upon the technology for new products.

We are confident that with the community-centric development environment
fostered by the Apache Software Foundation, WIAB will thrive.

= Initial Goals =

The initial goals of the project are:

 1.  To migrate the codebase from code.google.com and integrate the project
with the ASF infrastructure (issue management, build, project site, etc).
 1.  To quickly reach a state where it is possible to continue the
development of the Wave In a Box implementation under the ASF project.
 1.  To add new committers to the project and grow the community in "The
Apache Way".

= Current Status =

The open source Wave in a Box project has existed in various forms for
approximately 16 months (starting out life as the FedOne open source
project).

FedOne began in July 2009 in order to accelerate adoption of the wave
federation protocol, and serve as a proof of concept that a non-Google
implementation of the wave federation protocol could interoperate with the
Google production instance. It worked. FedOne's existence lead to a
prototype by Novell that demonstrated federation between Google Wave and
Novell Pulse (now known as Vibe). In addition, in May of 2010, SAP unveiled
a prototype version of SAP StreamWork that federated with both Novell Pulse
and Google Wave. All three systems interoperated, sharing real-time state,
and gadget updates. In May 2010 Google released significantly more code
(including the cross-browser rich text editor) to connect with other
components that were built from scratch, resulting in a simple web client.

The project has grown over the last year to include many Google and
non-Google contributions.  The project has picked up steam in recent months
as the direction of the standalone Google Wave product has shifted.  At this
time the Wave in a Box project enjoys very active development, with new
features and functionality being added almost daily. The first Wave Protocol
Summit was recently held and included developers from a variety of
countries, companies, and organizations.

The code base is a mixture of mature core code from Google Wave, and
somewhat immature integration code forming WIAB. WIAB is quickly becoming
highly functional and is already in a very "demoable" state.  The
development mailing lists are  very active indicating wide community
support.  We recognize that now is a good time to migrate to the Apache
Foundation while the codebase and community is a manageable size.  Assuming
the current momentum continues, we expect strong growth in the code and
community in the near future.

== Meritocracy ==

The initial set of committers includes many Google employees, and there is
an active and growing community outside Google contributing to WIAB already
today. Google culture itself encourages meritocracy, and the community has
always grown – and will continue to grow – in this fashion.

As shown by the initial committers list below, several members from outside
of Google have already demonstrated interest, skill, and commitment to
contributing to the project.  These individuals have been recognized on
those merits by the initial committers.  Their selection as the first wave
of new committers is a sign of the burgeoning meritocracy.

== Community ==

Wave currently has a healthy community around waveprotocol.org, with
conversations hosted at http://groups.google.com/group/wave-protocol. We
plan to move this community to the Apache Software Foundation incubator.

== Core Developers ==

The initial committers comes from a variety of backgrounds and includes many
from Google. There are a few existing Apache committers amongst this initial
group.  We anticipate early future committers coming from places like
Novell, SAP, companies related to the US Navy's usage of wave, startups in
the wave ecosystem, and many independent individuals.

== Alignment ==

The developers of WIAB want to work with the Apache Software Foundation
because Apache has proven to provide a strong foundation with good
infrastructure and support for developing projects in an open community.  As
WIAB continues to grow, the community will look to both reuse available
Apache projects as well as look for opportunities to contribute back to the
larger Apache community.

= Known Risks =

== Orphaned products ==

Wave is a new means for communication, and thus it is still maturing. While
the initial implementation (Google Wave) did not gain sufficient traction
for it to continue as a standalone Google product, there are other related
projects (e.g. Novell Vibe, SAP StreamWork), and several startups in the
space that are continuing to build on the technology. In addition, the US
Navy has contracted with four companies as part of evaluating using wave
technology on every ship. The community itself is still growing, with
several new contributors recently added.

== Inexperience with Open Source ==

The initial committers have varying degrees of experience with open source
projects. Many from the community are familiar with open source.

== Homogeneous Developers ==

The initial set of developers does include many from Google. However, the
project has accepted many patches from independent individuals, and some
have already gained committership. Several companies have expressed interest
and forty individuals participated in the Wave Summit.

== Reliance on Salaried Developers ==

Following Google's change of focus for Wave in August, some of Wave's Google
developers have chosen to continue working on Wave, but it is imperative
that we continue to grow the community larger in the coming months.

== Relationships with Other Apache Products ==

We currently use the following libraries from Apache
 * Commons CLI
 * Commons Codec
 * Commons HttpClient
 * Commons Logging
 * Velocity
 * Ant

We've also contributed the Wave Gadget implementation into the Apache
Shindig project.

= Documentation =

Entry point for documentation of all the specs and designs.
http://waveprotocol.org/

Wave Robots API
http://code.google.com/apis/wave/extensions/robots/

Wave Gadgets API
http://code.google.com/apis/wave/extensions/gadgets/guide.html

= Initial Source =

The initial source will come from
http://code.google.com/p/wave-protocol/source/browse/. This consists of the
Java code necessary for the client and server. These are already open source
repositories licensed under the Apache Public License.

= Source and Intellectual Property Submission Plan =

Beginning with the initial unveiling, Google published a liberal patent
license:

Subject to the terms and conditions of this License, Google and its
affiliates hereby grant to you a perpetual, worldwide, non-exclusive,
no-charge, royalty-free, irrevocable (except as stated in this License)
patent license for patents necessarily infringed by implementation of this
specification. If you institute patent litigation against any entity
(including a cross-claim or counterclaim in a lawsuit) alleging that the
implementation of the specification constitutes direct or contributory
patent infringement, then any patent licenses for the specification granted
to you under this License shall terminate as of the date such litigation is
filed.

http://www.waveprotocol.org/patent-license

= External Dependencies =

In addition to the previously mentioned Apache dependencies, the initial
code relies on the following libraries that have Apache compatible licenses:

antlr, aopalliance, asm, bouncycastle, cglib, dom4j, emma, gson, guava,
guice, gwt, gxp, hamcrest, jackson, jdom, jetty, jline, jmock, joda_time,
jsr305, junit, libidn, mockito, mongo-driver, oauth, protobuf,
protobuf-format-java, protostuff, stringtemplate, websocket, whack, xpp3

= Cryptography =

We use standard crypto library methods available in java.security.*. Wave
federation plans to uses encryption for sending deltas to remote Wave
servers.

= Required Resources =

==  Mailing lists ==

 * wave-dev
 * wave-commits
 * wave-private

It is possible that if the project does grown to include many sub project
that we would split the mailing list up by sub project.  Again we have
flexibility.


== Subversion Directory ==

https://svn.apache.org/repos/asf/incubator/wave

== Issue Tracking ==

Please help us setup a JIRA instance for both issue tracking and code
review.

== Other Resources ==

 * a wiki (for the sites pages) (
http://incubator.apache.org/guides/sites.html or a wiki
http://wiki.apache.org/incubator/)
 * code review on reviews.apache.org
 * a server to run a dogfood instance
 * continuous build bot

= Initial Committers =

 * Alex North (Google)
 * Anthony Watkins (SESI)
 * Christian Ohler (Google)
 * Dan Danilatos (Google)
 * Dan Peterson (Google) / dpeterson@apache.org
 * David Hearnden (Google)
 * David Wang (Google)
 * Ian Roughley (Novell) / roughley@apache.org
 * James Purser
 * Joseph Gentle
 * Lennard de Rijk
 * Michael MacFadden (Solute)
 * Soren Lassen (Google)
 * Tad Glines
 * Torben Weis (University Duisburg-Essen)

= Sponsors =

== Champion ==

 * Paul Lindner

== Nominated Mentors ==

 * Santiago Gala
 * Ben Laurie
 * Upayavira
 * Brian W. Fitzpatrick (emeritus on the Incubator PMC)

== Sponsoring Entity ==

The Apache Incubator.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message