# Contributing to Eclipse Dynamic Languages Toolkit

Thanks for your interest in this project.

## Project description

The Eclipse Dynamic Languages Toolkit (DLTK) is a tool for vendors, researchers,
and end-users who rely on dynamic languages. DLTK is comprised of a set of
extensible frameworks designed to reduce the complexity of building full
featured development environments for dynamic languages such as PHP and Perl.
Besides a set of frameworks DLTK provides exemplary Tcl, Ruby, and Python
Integrated Development Environments ready to use out of the box.

* https://projects.eclipse.org/projects/technology.dltk

## Developer resources

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

* https://projects.eclipse.org/projects/technology.dltk/developer

The project maintains the following source code repositories

* http://git.eclipse.org/c/dltk/org.eclipse.dltk.core.git
* http://git.eclipse.org/c/dltk/org.eclipse.dltk.javascript.git
* http://git.eclipse.org/c/dltk/org.eclipse.dltk.ruby.git
* http://git.eclipse.org/c/dltk/org.eclipse.dltk.tcl.git
* http://git.eclipse.org/c/dltk/org.eclipse.dltk.python.git
* http://git.eclipse.org/c/dltk/org.eclipse.dltk.sh.git
* http://git.eclipse.org/c/dltk/org.eclipse.dltk.releng.git
* http://git.eclipse.org/c/dltk/org.eclipse.dltk.all.git

This project uses Bugzilla to track ongoing development and issues.

* Search for issues: https://eclipse.org/bugs/buglist.cgi?product=DLTK
* Create a new report: https://eclipse.org/bugs/enter_bug.cgi?product=DLTK

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

## Eclipse Contributor Agreement

Before your contribution can be accepted by the project team contributors must
electronically sign the Eclipse Contributor Agreement (ECA).

* http://www.eclipse.org/legal/ECA.php

Commits that are provided by non-committers must have a Signed-off-by field in
the footer indicating that the author is aware of the terms by which the
contribution has been provided to the project. The non-committer must
additionally have an Eclipse Foundation account and must have a signed Eclipse
Contributor Agreement (ECA) on file.

For more information, please see the Eclipse Committer Handbook:
https://www.eclipse.org/projects/handbook/#resources-commit

## Contact

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

* https://dev.eclipse.org/mailman/listinfo/dltk-dev