Permalink
Switch branches/tags
CHE-9990-2 GH-707 GH-1344 GH-1352 GH-1564 GH-1888 GH-2009 GH-2138 GH-2272 GH-2485 GH-2599 GH-2624 GH-2733 GH-2767 GH-2906 GH-2965 GH-3010 GH-3071 GH-3145 GH-3168 GH-3197 GH-3338 GH-3736 GH-3759 JB/GH-3338 TerminalSelectionColor ab/DebugPluginApi ak/advanced_breakpoints ak/close_widgets_on_resource_disposal ak/get_rid_of_ts_node ak/incremental_document_updates ak/json_rpc_over_web_worker ak/ts_fs_events at/calls at/fix-callhierarchy at/fix-dugite-git at/fix-while-in-md at/http-opener-encoding at/update-xterm at/user-storage-resolver change-minibrowser-link-color claude_langevin comma cpp-ls-trace dave_smith eclipse_foundation_submission electron-2 electron-3 epatpol/preferences fix-terminal-plugin-api-docs folder-pick-api generate-app-name-patch git-diff git-navigable-list-widget-react-migration issue-2831 jk/gh3204 jk/gh3791 keybindings loader logPath logPath2 master mp/browser-test-fix mp/build-management mp/cpp-build-task mp/cpp-debug-ext mp/electron-dev-tools mp/electron-main-simple mp/electron-startup-menu mp/example-hybrid mp/fix-slow-load mp/issue-2831 mp/missing-theia-dep mp/tabnav++ mp/watcher-awaiting mp/willChangeModelOnSave msp_issue1923 nicolas_viens olivier_champagne plugin-api-documentation plugin-ext-open prefComent process-args queryWorkAround rerun-tasks revert-3598-vf/file-icons se/xtend-support search-in-workspace-react-tree simark/christina_gauthier simark/process-async simark/python-venv simark/samuel_legault skip-duplicates theia#2786 ui-test-temp-workspace unbreak-tslint vf/clean-up-plugin vf/git-changes-status-bar vf/git-misc vf/search-results vf/siw-path vf/ui-tests vplugin-id vscode-debug-protocol waitfor william_noel
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
121 lines (87 sloc) 4.7 KB

Contributing to Theia

Theia is a young open-source project with a modular architecture. One of the goals is to make sure that we can customize and enhance any Theia application through extensions. So while the main Theia repository contains some common functionality for IDE-like applications, like a file system or a navigator view, most functionality doesn't necessarily need to be put into the core repository but can be developed separately.

How Can I Contribute?

In the following some of the typical ways of contribution are described.

Asking Questions

It's totally fine to ask questions by opening an issue in the Theia GitHub repository. We will close it once it's answered and tag it with the 'question' label. Please check if the question has been asked before there or on Stack Overflow.

Reporting Bugs

If you have found a bug, you should first check if it has already been filed and maybe even fixed. If you find an existing unresolved issue, please add your case. If you could not find an existing bug report, please file a new one. In any case, please add all information you can share and that will help to reproduce and solve the problem.

Reporting Feature Requests

You may want to see a feature or have an idea. You can file a request and we can discuss it. If such a feature request already exists, please add a comment or some other form of feedback to indicate you are interested too. Also in this case any concrete use case scenario is appreciated to understand the motivation behind it.

Pull Requests

Before you get started investing significant time in something you want to get merged and maintained as part of Theia, you should talk with the team through an issue. Simply choose the issue you would want to work on, and tell everyone that you are willing to do so and how you would approach it. The team will be happy to guide you and give feedback.

Coding Guidelines

We follow the coding guidelines described here.

Eclipse Contributor Agreement

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

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

Sign your work

The sign-off is a simple line at the end of the explanation for the patch. Your signature certifies that you wrote the patch or otherwise have the right to pass it on as an open-source patch. The rules are pretty simple: if you can certify the below (from developercertificate.org):

Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Then you just add a line to every git commit message:

Signed-off-by: Joe Smith <joe.smith@email.com>

Use your real name (sorry, no pseudonyms or anonymous contributions.)

If you set your user.name and user.email git configs, you can sign your commit automatically with git commit -s.