> It's a simpel vote. It is not about changing rules or 
> requirements, because those are exactly the same as they are 
> for all code - the fact that I repeated them does not make them 'new'.
> All the vote is about is to relax one requirement - which is 
> the requirement that the code is maintained by the community.
> If that is too much trouble to make a vote on, I doubt it 
> will be on a face-to-face meeting.
>
> I can delay the end of the vote till thursday, after the 
> meeting, so people can discuss it as mcuh as they like. 
> However if you cannot simply make up your mind on the simple 
> qyestion whether we should allow people access to CVS (yes or 
> no), then there is imo no point in continuing at all.
> 
> If you don't want people to be able to put their code in CVS 
> at all, vote -1. If you do think people should get access, 
> using the current rules and possibly more relaxed rules in 
> the future, vote +1. If you don't care, abstain.

Okay, lets give it another try why I said no. 
+1 for CVS access.
-1 for the proposed rules. The rules are for non-community-maintained code
and they don't have to comply with the mmbase code requirements. 
-1 because there isn't a text explaining what is offered to 3rd parties when
the cvs is open.

In my perspective this is a small step for a developer, but a giant step for
the community. I agree with Pierre that we don't require a project. There is
enough documentation about the subject. The vote is almost there and I want
a modified version to pass. We don't need a lot of days of discussion. One
or two hours on a shouting meeting is enough.

Here is an example of the text which every 3rd party should read before
requesting usage of the infrastructure on the mmbase systems. Gerard already
did the work for me a year ago so this is nothing new. Is this a good
replacement for the vote Pierre made? It is for me.

----------------------------------------------------------------------------
------------------------------

If you are planning to share code and want to use the MMBase infrastucture,
please read this first.

MMBase is a general purpose object oriented content management system. The
sources
are freely available since april 2000. Since that time, MMBase has become a
base
for many systems which are mostly web-oriented.

What exactly is MMBase? How is its software organized, and how will it grow
overtime? The number of organizations involved with MMBase is increasing.
This presents new opportunities to share and collaborate, provided that 
questions like these are anwered.

This document gives an overview of the different MMBase-application types
there
are and how the MMBase-community could be dealing with them.

Core and Applications
=====================

MMBase is or can be divided in different parts. Some of the parts belong to
the
core of MMBase, some of the parts are applications build upon this core.

[architecture http://www.mmbase.org/mmdocs/general/media/architecture.png]

This section discusses the different parts, the community around these
parts,
the licenses that are being used or can be used, etc.

MMBase Core
-----------

MMBase core is the base of all MMBase-applications. We strive to
keep the Core as small as possible. There's an interface around the core,
called MMCI, which is the preferred way for applications to use the core.
This
interface must be stable and backwards compatible between different MMBase
releases, to ensure compatibility of MMBase-applications.

Community.
The core is maintained and extended by the MMBase developers (and especially
by the commitors).

License.
The core uses the MPL-1.0 license. This license has been chosen to get
as much freedom as possible. Developers can use the sources to extend
MMBase,
companies can use the core to build their own system and sell it to their
customers.

Although the license allows to create proprietary changes, it's better to
create changes with the backup of the developers community. It's better for
the
continuation of MMBase and proprietary changes are difficult to maintain
between different MMBase releases.

MMBase Community Packages
-----------------------------

Community packages are packages which are being developed by the same
developers community as the MMBase Core. A Community packages can be started
by the community, eg the mediaproject, or can be adopted by the community,
eg the editwizards.

Before an existing package can be adopted by the community, it has to be
proposed to the community as an 'Hack' (sometimes followed by an
'integration'
project) or as a project. The community must decide whether or not they are
going to maintain this package. More information about proposing an Hack or
a project see guidelines section at mmbase.org
http://www.mmbase.org/guidelines

A community package which is going to be started by the community must
follow
the project proposal guidelines, which can also be found at 
http://www.mmbase.org/guidelines.

Examples. Mediaproject, editwizards, taglib, dove, rmmci, xmlimporter, etc.

Community.
MMBase developers community

License.
The MMBase Community Packages must use the MPL-1.0 license. This way sources

can be mixed, package and core can be packaged together without any trouble
regarding licenses.

MMBase 3rd Party Packages
-------------------------

Packages being developed by external companies or organizations, which are
build upon the MMBase Core. There are two types of 3rd Party Packages:

 1. Closed Source Packages
 2. Open Source Packages

We'd like to encourage all companies to make their packages Open Source.
But it's perfectly legal to create a closed source package. If an package
is very specialized for one use it's not always useful to make it open
source
(although the source could be used to learn from).

Community.
These packages are being maintained by the community around the
package. This can be a company or companies which initially build the
package. This community can be joined by other developers or organizations.
It's also possible this community will be small during the initial
development
and after a period of time other organizations can join the community.

License.
The recommended license for these kind of applications is the MPL or
any compatible (BSD-like) license.


The rest of this document talks about the Open Source MMBase 3rd Party
Packages. Stop reading this document if you want to contribute to 
the MMBase Core or MMBase Community Packages. Go and read 
@@TODO@@ url to contribute.html


Infrastructure and Organization
===============================

To support all different types of packages an infrastructure is needed. An
infrastructure contains things like cvs-repository, mailing list, homepage,
bugtracker, etc.

Furthermore it's possible not all rules of the MMBase community apply
on all of the different packages.

Infrastructure
--------------

Most of the tools needed are already present for the MMBase Core. Because
the
MMBase Community Packages are being developed by the same community, the
same tools can be used for these packages.

The 3rd Party MMBase Packages require their own set of tools. Their own
mailing list(s), cvs-repository, homepage, bugtracker, documentation, etc.
These facilities are not yet in place, but for the moment the 3rd Party 
Packages are allowed to use the mailing list(s) and cvs-repository present
for the Core and Community Packages.

Repository

Everyone is allowed to use the repository, but that does not mean that
everyone 
is allowed to do everything. Below are some guidelines everyone should obey
to
keep everyone happy.

- please be kind and behave
- please confine yourself to your part

Mailing lists

When you post to the mailing lists about a specific applications please
prefix
the subject with the application name in square brackets [].

Homepage, bugtracker, documentation, distributions

The rest of the infrastructure might become available in the future. we
still
have to work out a suitable solution for these things.

Organization
------------
The MMBase Core and MMBase Community Packages share the same organization
and guidelines. Information about this can be found at the MMBase Developers
Website http://www.mmbase.org/guidelines

The 3rd Party MMBase Packages will have their own organization and rules,
which must be extended from the MMBase Core organization and rules. This way
the 3rd Party Packages and the MMBase Core are not too much on two different
roads. This is only needed for 3rd Party Packages which want to be
recognized
as one of the 'official MMBase 3rd Party Packages'.

How to become a 3rd Party Package
=================================

- The recommended license for these kind of packages is the MPL or any
compatible
  (BSD-like) license.
- The community (core committers) have to vote on allowing the application
in CVS.
  The Vote has to be made by an existing core committer.
- A committer (not necessarily the same person who made the vote) needs to 
  maintain the code. It is possible to make someone a committer for the
express
  purpose of maintaining 3rd-party code.
- As such, the package needs to have a committer supporting it.
- A package that is not maintained can be removed from CVS if nobody desires
to
  maintain it further.
- The release manager decides which packages are included in a distribution.
- The core committers decide which package gets the status
'community-maintained'.
  A community-maintained package no longer requires a specific committer to 
  maintain it, though a core committer will be typically assigned to
overview
  and approve changes.

Notice the difference in the usage core committer and committer in the rules
above. Core committers correspond to the role 'committers' as described in
the
guidelines (http://www.mmbase.org/guidelines). 3rd party committers don't
have
to be core committers, but then they don't have the priviliges of a core
committer.

What does this mean when you want to use the infrastructure of the MMBase
community? Send an email to the developers mailing list and request that one
of the core committers creates a Vote for you and your package. When the
vote
passes then you will receive an account and module to commit your package
in.
Your package will be removed again if you or somebody else is not
maintaining it.

Open Source
===========
When is software Open Source? There are different definitions in use, but a 
general definition is provided here:
http://www.opensource.org/docs/definition.php

In addition to this, the MMC recommends the following best practices.

Recommendations:
    * documentation included
    * license compatible with Mozilla Public License
    * contact-details available of maintainer 

_______________________________________________
Developers mailing list
Developers@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/developers

Reply via email to