# Contributing to Jakarta Expression Language

Thanks for your interest in this project.

## Project description

Jakarta Expression Language provides an important mechanism
for enabling the presentation layer (web pages) to communicate with the
application logic (managed beans). Jakarta Expression Language is used by several Jakarta EE
technologies, such as Jakarta Faces, Jakarta Server Pages, Jakarta Security and Contexts and
Dependency Injection for Jakarta EE (CDI). 

Jakarta Expression Language can also be used in stand-alone environments.

* https://projects.eclipse.org/projects/ee4j.el

## Developer resources

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

* https://projects.eclipse.org/projects/ee4j.el/developer

The project maintains the following source code repositories

* https://github.com/jakartaee/expression-language

## 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

## Eclipse Development Process

This Eclipse Foundation open project is governed by the Eclipse Foundation
Development Process and operates under the terms of the Eclipse IP Policy.

The Jakarta EE Specification Committee has adopted the Jakarta EE Specification
Process (JESP) in accordance with the Eclipse Foundation Specification Process
v1.2 (EFSP) to ensure that the specification process is complied with by all
Jakarta EE specification projects.

* https://eclipse.org/projects/dev_process
* https://www.eclipse.org/org/documents/Eclipse_IP_Policy.pdf
* https://jakarta.ee/about/jesp/
* https://www.eclipse.org/legal/efsp_non_assert.php

## Contact

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

* https://accounts.eclipse.org/mailing-list/el-dev
