Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "JSDT/Development"
(Funcitonal testing moved down) |
|||
Line 21: | Line 21: | ||
* ask the [https://www.eclipse.org/forums/index.php/f/88/ WebTools Project forum] | * ask the [https://www.eclipse.org/forums/index.php/f/88/ WebTools Project forum] | ||
* check the [https://wiki.eclipse.org/JSDT/Confcalls JSDT Confcalls] | * check the [https://wiki.eclipse.org/JSDT/Confcalls JSDT Confcalls] | ||
− | |||
− | |||
− | |||
=== Reporting Bugs === | === Reporting Bugs === | ||
Line 75: | Line 72: | ||
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> | 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> | ||
+ | |||
+ | === JSDT Functional Testing === | ||
+ | [[JSDTestScenarios | Testing Scenarios ]] | ||
=== Gerrit Reviews === | === Gerrit Reviews === |
Revision as of 13:21, 5 March 2016
JSDT | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source |
JSDT is a subproject of WTP providing JavaScript editing features based on JDT; JSON and other editors based on SSE; Nodejs and JS debugging support based on ChromeDevTools and much more.
Visit the project pages below to see who is involved, and then click to the developer resources to get the list of Git and Gerrit repositories:
- JSDT: JavaScript Development Tools
- WTP: WebTools Platform, parent project since WTP3.0
- SSE: Structured Source Editing, for editors like XML, CSS, JSON
- JDT: Java Development Tools, extended by the JavaScript Editor
Contents
Contributing to JSDT
The JSDT is driven by a small and dedicated development team with limited resources. ANY serious developers or contributors will be enthusiastically welcomed. For more information on how to become a Committer, read how we nominate and elect new committers according the standard Eclipse process.
To contribute to JSDT you can report bugs, resolve bugs and write documents or create media contents to spread your knowledge.
Getting in touch with the Community
For more information about contributing to JSDT or for questions about its internals you have few options:
- contact wtp-dev AT eclpse after you subscribed to the mailing list.
- chat via IRC on the #eclipse or #eclipse-dev channel
- get in touch on the Eclipse mattermost webtools channel
- ask the WebTools Project forum
- check the JSDT Confcalls
Reporting Bugs
Report a bug through Eclipse Bugzilla under WebTools catagory, JSDT component.
Here is a list of open JSDT bugs. We're working through them as fast as we can!
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
Development Environment Setup
There are several ways to setup the development environment. Here are 2 good ones:
Eclipse IDE + Target Platform aside
For this setup we will need two Eclipse installations: an Eclipse IDE for development and an Eclipse WTP to be used as a Target Platform in the development instance. This setup is flexible:
- IDE: For development we can use the latest SDK and add on top all the needed plugins
- WTP We can switch different Target Platform (and Baseline) as needed, via Windows > Preferences > Plug-in Development
Example 1: Simple setup to develop on Mars.1 :
- IDE: eclipse-rcp-mars-1
- WTP: eclipse-jee-mars-1
Example 2. Advanced setup, to use the latest IDE development:
- IDE: latest M-Build from the eclipse/downloads and add your development plugins.
- WTP : Eclipse SDK + WTP SDK, as example: get the SDK-4.5.1 from the eclipse/downloads and add the WTP-SDK 3.7.1 adding it via the webtools/repository/mars update site
Full WTP SDK Stack
The Full Stack is an installation made of Eclipse SDK + WTP SDK, to be used as both as dev environment and as a Target Platform at the same time. This solution shouldn't be faster than the previous setup, and it has limitations when testing again different targets, as it'll be needed to have multiple IDEs.
JSDT Sources
You find the Git Repository: webtools.jsdt.git. See also JSDT/Developer Resources
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 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
JSDT Functional Testing
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 ssh://user@git.eclipse.org:29418/jsdt/webtools.jsdt. 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
$ 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.
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 -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.
- Hudson voting +1 means that the test didn't introduce any regression visible by build or automated tests.
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!