General
Basil server is the open source project through which Basil-project
group is releasing the technology for the functionality of web servers.
Basil is a new project that was founded on free lance base. Basil
is the name of the overall project and is being hosted by BitterNet.
Basil-project's
three main features are:
downloadable sources and information
the community and communication mechanisms for the project
the governance body called the Basil-project team.
The
Basil-project establishes the necessary facilities to make this
open source technology available to the developer community. This
project web site currently includes informational resources and
discussion forums.
The
following chapter describe guidelines regarding technical roles
and responsibilities at Basil-project and handling of source code.
Substantial enhancements or modifications of these guidelines need
approval of 2/3 majority of Project Leads.
Roles
and Responsibilities
The roles and responsibilities that people can assume in the project
are based on merit. Everybody can help no matter what their role.
Those who have been long term and valuable contributors to the project
obtain the right to commit directly to the source repository.
Users
Users are the people who use the products of the Project. People
in this role aren't contributing code, but they are using the products,
reporting bugs, making feature requests, and such. This is by far
the most important category of people as, without users, there is
no reason for the Project. When a user starts to contribute code
or documentation patches, they become a developer.
Developers
Developers are the people who write code or documentation patches
or contribute positively to the project in other ways. A developer's
contribution is always recognized. In source code, all developers
who contribute to a source file may add their name to the list of
contributors for that file.
Committers
Developers who give frequent and valuable contributions to a project
can have their status promoted to that of a "Committer"
for that project. A Committer has write access to the source code
repository.
In
order for a Developer to become a Committer, another Committer can
nominate that Developer. The Project Lead may convert the Developer
into a Committer and give write access to the source code repository
for his project.
At
times, Committers may go inactive for a variety of reasons. A Committer
that has been inactive for 6 months or more may lose his or her
status as a Committer. In this case or if value of contributions
of a Committer decreases write access may also be revoked by the
responsible Project Lead.
A
committed change must be reversed if this is asked by the responsible
Project Lead or the majority of all Project Leads and the conditions
cannot be immediately satisfied by the equivalent of a "bug
fix" commit. The situation must be rescinded before the change
can be included in any public release.
Project
Leads
Long term Committers with actual involvement in developing code,
deep knowledge in the working area of question and Basil-project
as a whole and proven leadership skills can be nominated as Project
Lead. A Project Lead is responsible for giving guidance and directions
for his project and it's part of the Basil-project effort. He especially
should make sure that questions about his project are answered and
contributions/issues are handled.
Nominated
by Committers a candidate may be approved by 2/3 majority of Project
Leads as an Project Lead for a new project or an orphaned, existing
project.
Loss
of Project Lead status may not only occur due to contribution inactivity
(as described for Committers) but also because of missing fulfilment
of responsibilities for the project the Project Lead is in charge
of. A 2/3 majority of Project Leads may revoke Project Lead status.
A
list of our current Project Leads can be found in the list of projects.
Sources
The codebase is maintained in shared information repositories. Only
Committers have write access to these repositories. Everyone has
read access via Web-interface.
All
source code committed to the Project's repositories must be covered
by GPL. Developers of source code larger than small changes must
have contact for the Project Leads for their contribution can be
committed to the repository.
Straightforward
patches and feature implementations can be committed without prior
notice or discussion. Doubtful changes and large scale overhauls
need to be discussed before committing them into the repository.
Any change that affects the semantics, function, configuration data
or other major areas must receive approval. A Project Lead may informally
approve changes within their project.
There
are three different types of changes:
info
Informational notice about an API change, no developer action necessary.
recommended
Use the new API as soon as possible. The old API is obsolete and
might go away in the near future. New code should always use the
new API.
required
Not complying to the new API will break the build or cause runtime
failure. Developer action is mandatory.
Proposals
for inter-project changes of type "recommended" or "required"
must be published with the suggested change date to the interface
discussion mailing list. Earliest after one week for review a change
announcement must be published to the interface announce mailing
list. During this announcement period depending projects have to
prepare their projects for the changes so that the following build
will not break. They are responsible for reflecting the change in
their project, not the requester. Within the two weeks of discussion/announcement
Project Leads may raise a flag and Project Leads majority has to
decide about cancellation of the change request.
A
committed change must be reversed if this is asked by the responsible
Project Lead or the majority of all Project Leads and the conditions
cannot be immediately satisfied by the equivalent of a "bug
fix" commit. The situation must be rescinded before the change
can be included in any public release.
|