Contributing to Mylyn Context
=============================

Thanks for your interest in this project.

Mylyn Project description:
--------------------

Mylyn is a Task-Focused Interface for Eclipse that reduces information overload and makes multi-tasking easy.

- https://projects.eclipse.org/projects/mylyn

Mylyn Context Sub-Project description:
--------------------

The Mylyn Context project provides 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.

Developer resources:
--------------------

Information regarding source code management, builds, coding standards, and more.

- http://wiki.eclipse.org/index.php/Mylyn_Contributor_Reference
- https://projects.eclipse.org/projects/mylyn/developer

Contributor License Agreement:
------------------------------

Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (CLA).

- http://www.eclipse.org/legal/CLA.php

Contact:
--------

Contact the project developers via the project's "dev" list.

- https://dev.eclipse.org/mailman/listinfo/mylyn-dev

Search for bugs:
----------------

This project uses Bugzilla to track ongoing development and issues.

- https://bugs.eclipse.org/bugs/buglist.cgi?product=Mylyn Context

Create a new bug:
-----------------

Be sure to search for existing bugs before you create another one. Remember that contributions are always welcome!

- https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Mylyn Context
