The JSDT is driven by a very small development group with limited resources. ANY serious developers or contributors will be enthusiastically welcomed. For more information on how to become a Committer, check the standard Eclipse process (see [http://www.eclipse.org/projects/dev_process/new-committer.php New Committer Election]). For more information about contributing to JSDT in general, or for questions about its internals, contact [mailto:wtp-dev@eclipse.org?subject=JSDT wtp-dev].

These plug-ins have no dependencies other than the Eclipse base (they do not depend on anything else in WTP). Using these plug-ins, a standalone JavaScript Project can be created and used:

+

Here is a [https://bugs.eclipse.org/bugs/buglist.cgi?list_id=3212991&resolution=---&classification=WebTools&query_format=advanced&product=JSDT list of open JSDT bugs]. We're working through them as fast as we can!

−

* org.eclipse.jsdt/plugins/org.eclipse.wst.jsdt.core

+

−

* org.eclipse.jsdt/plugins/org.eclipse.wst.jsdt.manipulation

+

−

* org.eclipse.jsdt/plugins/org.eclipse.wst.jsdt.ui

+

−

The feature project for these is:

+

You can receive notifications of incoming bugs by monitoring account ''jsdt.javascript-inbox@eclipse.org'' in https://bugs.eclipse.org/bugs/userprefs.cgi?tab=email

Detailed repository contents you can find at this page: http://wiki.eclipse.org/WTP_Git_Migration_Checklist

+

+

These plug-ins have no dependencies other than the Eclipse base (nor do they depend on anything else in WTP). Using these plug-ins, a standalone JavaScript Project can be created and used:

+

* bundles/org.eclipse.wst.jsdt.core

+

* org.eclipse.wst.jsdt.manipulation

+

* org.eclipse.wst.jsdt.ui

+

+

The Feature project for these is:

+

* features/org.eclipse.wst.jsdt.feature

+

+

=== Building and testing JSDT locally ===

+

+

Simply run <tt>mvn clean verify -Pbuild-individual-bundles -DskipTests=false</tt>. This command will run the Unit-tests. After the build, you can install your JSDT snapshot in an Eclipse IDE or other RCP application using the p2 repository in location <tt>site/target/repository</tt>

+

+

=== Gerrit Reviews ===

+

+

==== Pushing a new patch for review ====

+

+

You can use [[Gerrit]] (mandatory reading, important to set up hooks, SSH keys, CLA & other) to push Git commits on JSDT repositories. The repo URL for JSDT@Gerrit is <tt>ssh://user@git.eclipse.org:29418/jsdt/webtools.jsdt</tt>. Once logged into Gerrit, you can see more details about the URL at https://git.eclipse.org/r/#/admin/projects/jsdt/webtools.jsdt .

+

+

Assuming you named this repo ''gerrit'', you can push a commit to one of this repository with

+

<source lang="bash">

+

$ git push gerrit HEAD:refs/for/master

+

</source>

+

This will give you the URL of the Gerrit review where you can interact with project committers to get your commit merged.

+

+

In case you need to push another version of the patch, don't forget to copy the <tt>Change-Id</tt> from the Gerrit review if you didn't set up the git hook. Providing another version of the patch doesn't require a new commit, simply amend the one you already pushed, and push it again:

$ git push gerrit HEAD:refs/for/master # will create another version of the patch, on the same review.

+

</source>

+

+

==== Reviewing a patch ====

+

+

Incoming patch automatically triggers a build and will receive an automated vote according to whether patch breaks the build/tests or not. The CI job providing this vote is https://hudson.eclipse.org/webtools/job/jsdt-gerrit.

+

* Anytime Hudson votes with '''<span style="color: red">-1</span>''', it generally means that something is wrong with the patch: it breaks build or make a test failing, so the patch shouldn't be merged. The build log should be inspected by submitter and reviewers to understand the cause of the bug and submit (or assist in submitting) a better patch.

Anyone is free to add comments and vote on a review. Committers have the final power to decide whether or not a patch can be merged.

+

+

==== List reviews and be notified ====

+

+

You can see the list of open Gerrit reviews at https://git.eclipse.org/r/#/q/status:open+project:jsdt/webtools.jsdt,n,z .

+

+

Regular contributors and committers should really subscribe to notifications of proposed patches. You can set up notifications for proposed incoming changes at https://git.eclipse.org/r/#/settings/projects

+

+

=== Static analysis with SonarQube ===

+

+

JSDT uses SonarQube to get reports about static analysis. Those can show potential bugs, performance traps, or just bad practices. Here is the status of JSDT on these topics: https://dev.eclipse.org/sonar/dashboard/index/org.eclipse.webtools.jsdt:jsdt-parent . Any help to clean up warnings is welcome!

+

+

== Architecture ==

=== HTML an JSP editors ===

=== HTML an JSP editors ===

−

The following plug-in projects provide JSDT integration with WTP's HTML and JSP editors:

Follow the instructions at http://www.eclipse.org/jdt/core/howto/generate%20parser/generateParser.html for generating the parser. The parser grammer file is located in cvs at sourceediting/plugins/org.eclipse.wst.jsdt.core/grammer/js.g

Follow the instructions at http://www.eclipse.org/jdt/core/howto/generate%20parser/generateParser.html for generating the parser. The parser grammer file is located in cvs at sourceediting/plugins/org.eclipse.wst.jsdt.core/grammer/js.g

Contributing to JSDT

The JSDT is driven by a very small development group with limited resources. ANY serious developers or contributors will be enthusiastically welcomed. For more information on how to become a Committer, check the standard Eclipse process (see New Committer Election). For more information about contributing to JSDT in general, or for questions about its internals, contact wtp-dev.

JSDT Sources

These plug-ins have no dependencies other than the Eclipse base (nor do they depend on anything else in WTP). Using these plug-ins, a standalone JavaScript Project can be created and used:

bundles/org.eclipse.wst.jsdt.core

org.eclipse.wst.jsdt.manipulation

org.eclipse.wst.jsdt.ui

The Feature project for these is:

features/org.eclipse.wst.jsdt.feature

Building and testing JSDT locally

Simply run mvn clean verify -Pbuild-individual-bundles -DskipTests=false. This command will run the Unit-tests. After the build, you can install your JSDT snapshot in an Eclipse IDE or other RCP application using the p2 repository in location site/target/repository

Assuming you named this repo gerrit, you can push a commit to one of this repository with

$ git push gerrit HEAD:refs/for/master

This will give you the URL of the Gerrit review where you can interact with project committers to get your commit merged.

In case you need to push another version of the patch, don't forget to copy the Change-Id from the Gerrit review if you didn't set up the git hook. Providing another version of the patch doesn't require a new commit, simply amend the one you already pushed, and push it again:

$ git log-1#Shows the commit. Message should contain Sign-Off-By and Change-Id
$ git add file/to/change
$ git commit--amend# add --signoff if Sign-Off-By is missing, and copy Change-Id from Gerrit review if missing
$ git push gerrit HEAD:refs/for/master # will create another version of the patch, on the same review.

Anytime Hudson votes with -1, it generally means that something is wrong with the patch: it breaks build or make a test failing, so the patch shouldn't be merged. The build log should be inspected by submitter and reviewers to understand the cause of the bug and submit (or assist in submitting) a better patch.