blob: 6d06962a19c6db6917363021554f655f886aa7ae [file] [log] [blame]
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<p>
<h1>Mylyn Charter</h1>
</p>
<p>
<h2>Contents</h2>
</p>
<ol style="list-style: none;">
<li><a href="#Overview">Overview</a></li>
<li><a href="#Mission">Mission</a></li>
<li><a href="#Scope">Scope</a>
<ol style="list-style: none;">
<li><a href="#Framework_Projects">Framework Projects</a></li>
<li><a href="#Tool_Projects">Tool Projects</a></li>
<li><a href="#Incubator_Projects">Incubator Projects</a></li>
</ol></li>
<li><a href="#Project_Management_Committee">Project
Management Committee</a></li>
<li><a href="#Roles">Roles</a>
<ol style="list-style: none;">
<li><a href="#Users">Users</a></li>
<li><a href="#Developers">Developers</a></li>
<li><a href="#Committers">Committers</a></li>
</ol></li>
<li><a href="#Projects">Projects</a></li>
<li><a href="#Project_Organization">Project Organization</a></li>
<li><a href="#Infrastructure">Infrastructure</a>
<ol style="list-style: none;">
<li><a href="#Bugzilla">Bugzilla</a></li>
</ol></li>
<li><a href="#The_Development_Process">The Development
Process</a></li>
<li><a href="#Licensing">Licensing</a></li>
</ol>
<h1 id="Overview">Overview</h1>
<p>
The <b>Mylyn Application Lifecycle Tools</b> Top-Level Project is an
open source collaborative software development project dedicated to
providing an extensible, standards-based platform to address a broad
range of needs of accessing task and application lifecycle management
tools and services using the Eclipse platform.
</p>
<ul>
<li>Descriptive name: <b>Application Lifecycle Tools</b></li>
<li>Nickname: <b>Mylyn</b></li>
</ul>
<p>
For details on the structure of the project see the <b><a
href="https://wiki.eclipse.org/Mylyn/Restructuring">Restructuring</a></b>
document.
</p>
<h1 id="Mission">Mission</h1>
<p>The mission of the project is to provide:</p>
<ol>
<li>Frameworks and APIs for Eclipse-based task and Application
Lifecycle Management (ALM)</li>
<li>Exemplary tools for <a
href="http://en.wikipedia.org/wiki/Task-focused_interface">task-focused
programming</a> within the Eclipse IDE.
</li>
<li>Reference implementations for open source ALM tools used by
the Eclipse community and for open ALM standards such as <a
href="http://open-services.net">OSLC</a>
</li>
</ol>
<p>This document describes the composition and organization of the
project, roles and responsibilities of the participants, and
development process for the project.</p>
<h1 id="Scope">Scope</h1>
<ul>
<li><b>A task management tool for developers</b></li>
<li><b>The revolutionary task-focused interface</b></li>
<li><b>A broad ecosystem of Agile and ALM integrations</b></li>
</ul>
<h4 id="Framework_Projects">Framework Projects</h4>
<p>The project will initially be structured into the following
sub-projects, each representing an ALM category and providing common
APIs for specific ALM tools. The primary consumers of this project are
ALM ISVs and other adopters of Eclipse ALM frameworks.</p>
<ul>
<li><b>Tasks</b> - Integration with Agile, issue, bug and defect
tracking servers. The project provides rich task editing, task list
management and offline synchronization for ALM servers. Central
portion of the ALM integration framework used by other projects, eg,
task-based changed tracking for the SCM project.</li>
<li><b>Contexts</b> - Usage monitoring, degree-of-interested
modeling and the task-focused user extensions implementation for the
Eclipse UI, which re-aligns the user experience around tasks and
provides features such as workspace focusing and one-click
multitasking.</li>
<li><b>Versions</b> - Eclipse integration for source code and
configuration management tools(SCM, SCCM) and bi-directional linking
to change management tools. This project and APIs it provides builds
on the existing Eclipse "Team" APIs.</li>
<li><b>Builds</b> - Integration of continuous integration and
build systems and seamless access to software build and assembly
technologies. Mylyn users will be able to access continuous
integration processes, control build execution and associate build
results with tasks and context.</li>
<li><b>Reviews</b> - Eclipse-based code review functionality
that's seamlessly integrated with the Tasks and SCM systems supported
by Mylyn. Eclipse integration for Agile code reviews, the formal IEEE
code review process, review reports with BIRT and aim to support many
Eclipse artifact for reviews, e.g. JDT (Java files), CDT (C/C++
files), EMF (models).</li>
<li><b>Docs</b> - The scope of this project is Eclipse-based
access to documentation systems such as Wikis and other portals. This
builds on the Mylyn WikiText framework.</li>
<li><b>Commons</b> - The scope of this project is to provide a
framework of common UI, web service, REST and test utilities to be
used by the rest of Mylyn and by other Eclipse-based tools (see <a
href="https://wiki.eclipse.org/Mylyn_Integrator_Reference#Commons_API">Mylyn_Integrator_Reference#Commons_API</a>).</li>
<li><b>Incubator</b> - New development in areas that are relevant
to the other sub-projects.</li>
</ul>
<h4 id="Tool_Projects">Tool Projects</h4>
<p>
The primary consumers of the tool projects are developers using
Eclipse and wanting integration with their application lifecycle
tools. Each of these projects fits under a framework sub-project, but
typically will its own branding and user community, which builds on
the community defined by the corresponding ALM or application
development tool. While the number of tool projects will grow, the
goal is only to provide reference implementations, and not the
comprehensive set of open source and commercial integrations provided
by the <a href="https://wiki.eclipse.org/Mylyn/Extensions">Mylyn/Extensions</a>
ecosystem.
</p>
<ul>
<li>Tasks
<ul>
<li><b>Bugzilla Connector</b>: Mozilla Bugzilla bug tracker
integratoin</li>
<li><b>Trac Connector</b>: Trac ticket tracker integration</li>
</ul>
</li>
<li>Context
<ul>
<li><b>Java Bridge</b>: Context management for Java development
with JDT</li>
<li><b>C/C++ Bridge</b>: Context management for C/C++
development with CDT</li>
</ul>
</li>
<li>Versions
<ul>
<li><b>EGit</b>: the new top-level project is proposed as a new
home for EGit/JGit</li>
<li><b>CVS Connector</b>: Task-based change set management for
CVS, depends on team.cvs</li>
</ul>
</li>
<li>Builds
<ul>
<li><b>Hudson Connector</b>: Continuous integration access for
Hudson</li>
</ul>
</li>
<li>Reviews
<ul>
<li><b>R4E</b>: The reviews tool leverages the above
integrations, and does not require a separate server integration,
just a compatible Tasks and SCM integration</li>
<li><b>Task-based Reviews</b>: Lightweight code reviews shared
through task repositories</li>
<li><b>Gerrit Connector</b>: Gerrit code review integration for
Git repositories</li>
</ul>
</li>
<li>Docs
<ul>
<li><b>WikiText</b>: Wiki-based markup editing for popular
dialects</li>
<li><b>RichText</b>: HTML/XHTML/RTF markup editing</li>
</ul>
</li>
</ul>
<h4 id="Incubator_Projects">Incubator Projects</h4>
<p>The Mylyn Incubator will focus on new development in areas that
are relevant to the other Mylyn Project sub-projects, which because of
their nature would not be appropriate for direct inclusion in the
effected sub-project. This could be because the work is still
experimental, will have a longer timeline than can be contained within
a single release, has dependencies on external IP that has not yet
cleared the Eclipse Foundation IP process, or is simply potentially
too destabilizing in nature.</p>
<ul>
<li><b>Incubator</b>: Trac Wiki Integration, UI Experiments, UI
Usage Reporting
<ul>
<li><b>Web Templates Connector</b></li>
<li><b>WikiText Sandbox</b></li>
</ul></li>
</ul>
<h1 id="Project_Management_Committee">Project Management Committee</h1>
<p>
The Projects under this Charter are managed by a group known as the
Project Management Committee (the "PMC"). The PMC's duties are
described in <a
href="http://www.eclipse.org/projects/dev_process/development_process.php#4_6_Leaders">"4.6
Leaders"</a> of the Eclipse Development Process.
</p>
<p>The work of the PMC is shared by the PMC members. All PMC
members are expected to contribute actively. In particular, PMC
members are expected to take responsibility for overseeing certain
areas of work in the Project, and reporting to the PMC on these areas.
Because of the diversity amongst individual projects, PMC members are
not expected to maintain anything other than general currency with
projects outside their assigned technical areas.</p>
<p>Active participation in the user newsgroups and the appropriate
developer mailing lists is a responsibility of all PMC members, and is
critical to the success of the Project. PMC members are required to
monitor the main Project mailing list, and the developer mailing lists
for all Projects and components they are overseeing.</p>
<h1 id="Roles">Roles</h1>
<p>The Projects under this Charter are operated as meritocracies --
the more you contribute, and the higher the quality of your
contribution, the more you are allowed to do. However with this comes
increased responsibility.</p>
<h2 id="Users">Users</h2>
<p>Users are the people who use the output from the Project. Output
will typically consist of software in form of extensible frameworks
and exemplary tools. Software in this context means intellectual
property in electronic form, including source and binary code,
documentation, courseware, reports and whitepapers.</p>
<h2 id="Developers">Developers</h2>
<p>Users who contribute software, documentation, or other
materially useful content become developers. Developers are encouraged
to participate in the user newsgroup(s), and should monitor the
developer mailing list associated with their area of contribution.
When appropriate, developers may also contribute to development design
discussions related to their area of contribution. Developers are
expected to be proactive in reporting problems in the bug tracking
system</p>
<h2 id="Committers">Committers</h2>
<p>
Developers who give frequent and valuable contributions to a Project,
or component of a Project (in the case of large Projects), can have
their status promoted to that of a "Committer" for that Project or
component respectively. See <a
href="http://www.eclipse.org/projects/dev_process/development_process.php#4_7_Committers_and_Contributors">"4.7
Committers and Contributors"</a> of the Eclipse Development Process for
the process and responsibilities that entails.
</p>
<p>At times, Committers may become inactive for a variety of
reasons. The decision making process of the Project relies on active
committers who respond to discussions and vote in a constructive and
timely manner. The PMC is responsible for ensuring the smooth
operation of the Project. A Committer who is disruptive, does not
participate actively, or has been inactive for an extended period may
have his or her commit status revoked by the PMC.</p>
<p>Active participation in the user newsgroup and the appropriate
developer mailing lists is a responsibility of all Committers, and is
critical to the success of the Project. Committers are required to
monitor and contribute to the user newsgroup.</p>
<p>Committers are required to monitor the mailing lists associated
with all Projects and components for which they have commit
privileges. This is a condition of being granted commit rights to the
Project or component. It is mandatory because committers must
participate in votes (which in some cases require a certain minimum
number of votes) and must respond to the mailing list in a timely
fashion in order to facilitate the smooth operation of the Project.
When a Committer is granted commit rights they will be added to the
appropriate mailing lists. A Committer must not be unsubscribed from a
developer mailing list unless their associated commit privileges are
also revoked.</p>
<p>Committers are required to track, participate in, and vote on,
relevant discussions in their associated Projects and components.
There are three voting responses: +1 (yes), -1 (no, or veto), and 0
(abstain).</p>
<p>Committers are responsible for proactively reporting problems in
the bug tracking system, and annotating problem reports with status
information, explanations, clarifications, or requests for more
information from the submitter. Committers are responsible for
updating problem reports when they have done work related to the
problem.</p>
<h1 id="Projects">Projects</h1>
<p>The work under this Top Level Project is further organized into
Projects. New Projects must be consistent with the mission of the Top
Level Project, be recommended by the PMC, and confirmed by the EMO.
Projects can be discontinued by recommendation of the PMC, and
confirmed by the EMO.</p>
<p>When a new Project is created, the PMC nominates a Project lead
to act as the technical leader and nominates the initial set of
Committers for the Project, and these nominations are approved by the
EMO. Project leads are accountable to the PMC for the success of their
Project.</p>
<h1 id="Project_Organization">Project Organization</h1>
<p>Given the fluid nature of Eclipse Projects, organizational
changes are possible, in particular: dividing a Project into
components; dividing a Project into two or more independent Projects;
and merging two or more Projects into a single Project. In each case,
the initiative for the change may come either from within the Project
or from the PMC, but the PMC must approve any change, and approval
must be confirmed by the EMO.</p>
<p>If a Project wishes to divide into components, commit privileges
are normally granted at the component level, and the committers for a
given component vote on issues specific to that component. Components
are established and discontinued by the PMC. When the PMC creates a
component, it appoints a component lead to act as the technical leader
and names the initial set of Committers for the component. The
component lead is designated as a committer for the Project and
represents the component in discussions and votes pertaining to the
Project as a whole. Component committers do not participate in votes
at the level of the Project as a whole, unless they are also the
component lead.</p>
<p>In cases where new Projects are being created, either by
splitting or by merging, the usual procedures as set forth in this
Charter are followed. In particular, developers will not necessarily
have the same rights after an organizational change that they enjoyed
in the previous structure.</p>
<h1 id="Infrastructure">Infrastructure</h1>
<p>The PMC works with the EMO to ensure the required infrastructure
for the Project. The Project infrastructure will include, at minimum:</p>
<ul>
<li>Bug Database - Bugzilla database for tracking bugs and
feature requests.</li>
<li>Source Repository -- One or more source repositories
containing all the software for the Projects.</li>
<li>Website - A website will contain information about the
Project, including documentation, reports and papers, courseware,
downloads of releases, and this Charter.</li>
<li>General Mailing List - Mailing list for discussions
pertaining to the Project as a whole or that cross Projects. This
mailing list is open to the public.</li>
<li>Project Mailing Lists - Mailing list for technical
discussions related to the Project. This mailing list is open to the
public.</li>
<li>Component Mailing Lists - Mailing list for technical
discussions related to the component. This mailing list is open to
the public.</li>
<li>Newsgroups - Newsgroups where users, developers, and
committers can interact regarding general questions and issues about
the project. The newsgroup is open to the public.</li>
</ul>
<h2 id="Bugzilla">Bugzilla</h2>
<p>Each framework project is represented as a component under the
Mylyn product, e.g. Mylyn/Tasks. Tools and incubator projects have
their own product that maybe prefixed with the top-level project name,
e.g. "Mylyn Bugzilla Connector". Tools and incubator projects may vote
on their own components.</p>
<h1 id="The_Development_Process">The Development Process</h1>
<p>Each Project lead must produce a development plan for the
release cycle, and the development plan must be approved by a majority
of Committers of the Project. The plan must be submitted to the PMC
for review. The PMC may provide feedback and advice on the plan but
approval rests with the Project Committers.</p>
<p>Each Project must identify, and make available on its web site,
the requirements and prioritizations it is working against in the
current release cycle. In addition, each Project must post a release
plan showing the date and content of the next major release, including
any major milestones, and must keep this plan up to date.</p>
<p>The Committers of a Project or component decide which changes
may be committed to the master code base of a Project or component
respectively. The PMC defines the decision process, but that process
must include the ability for Committers to veto the change. The
decision process employed may change with the phase of development.
Common decision processes include:</p>
<ul>
<li>Retroactive - changes are proactively made by Committers but
can be vetoed by a single Committer.</li>
<li>Proactive - for efficiency, some code changes from some
contributors (e.g. feature additions, bug fixes) may be approved in
advance, or approved in principle based on an outline of the work, in
which case they may be committed first and changed as needed, with
conflicts resolved by majority vote of the Committers of the Project
or component, as applicable.</li>
<li>Three Positive - No code is committed without a vote; three
+1 ('yes' votes) with no -1 ('no' votes or vetoes) are needed to
approve a code change.</li>
</ul>
<p>Vetoes must be followed by an explanation for the veto within 24
hours or the veto becomes invalid. All votes are conducted via the
developer mailing list associated with the Project or component.
Special rules may be established by the PMC for Projects or components
with fewer than three Committers.</p>
<p>The master copy of the code base must reside on the Project web
site where it is accessible to all users, developers and committers.
Committers must check their changes and new work into the master code
base as promptly as possible (subject to any check-in voting rules
that may be in effect) in order to foster collaboration among widely
distributed groups and so that the latest work is always available to
everyone. The PMC is responsible for working with the Eclipse
Foundation to establish a release engineering and build process to
ensure that builds can be reliably produced on a regular and frequent
basis from the master code base and made available for download from
the Project web site. Builds in this context are intended to include
not only code but also reports, documentation, and courseware.</p>
<p>Each Project is responsible for establishing test plans and the
level of testing appropriate for the Project.</p>
<p>All development technical discussions are conducted using the
development mailing lists. If discussions are held offline, then a
summary must be posted to the mailing list to keep the other
committers, and any other interested parties.</p>
<h1 id="Licensing">Licensing</h1>
<p>
All contributions to Projects under this Charter must adhere to the
Eclipse Foundation <a
href="http://www.eclipse.org/org/documents/Eclipse_IP_Policy.pdf">Intellectual
Property Policy</a>.
</p>
</body>
</html>