Skip to content

Commit

Permalink
Add contribution documentation
Browse files Browse the repository at this point in the history
This commit adds CONTRIBUTION.md and modifies README.md to inform
contributors of important contribution policies, legal documents,
agreements and guidelines.

Signed-off-by: Hoang Thuan Pham <hoang.pham@calian.ca>
  • Loading branch information
hoangphamEclipse authored and bhufmann committed Apr 7, 2022
1 parent ff00759 commit 06ffb25
Show file tree
Hide file tree
Showing 2 changed files with 138 additions and 44 deletions.
135 changes: 135 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# Contributing to Trace Viewer extension

Thanks for your interest in the [Trace Viewer extension][trace-viewer]! The following is a set of
guidelines for contributing to the Trace Viewer extension for Theia applications.

## How to Contribute

⚠️ **Important note** Setting up the development environment on Linux is the easiest. If you are trying
to run the project on Windows or MacOs and you are encountering issues, please [contact us][contact-us].

In order to contribute, please first [open an issue][issues] that clearly describes the bug you
intend to fix or the feature you would like to add. Make sure you provide a way to reproduce the bug
or test the proposed feature.

Once you have your code ready for review, please [open a pull request][pull-requests]. Please follow
the [pull request guidelines][pr-guide]. If you are new to the project, the
[new contributors][new-contributors] section provides useful information to get you started. A
committer of the Trace Extension will then review your contribution and help to get it merged.

## Code of Conduct

This project is governed by the [Eclipse Community Code of Conduct][code-of-conduct].
By participating, you are expected to uphold this code.

## Eclipse Development Process

This Eclipse Foundation open project is governed by the [Eclipse Foundation
Development Process][dev-process] and operates under the terms of the [Eclipse IP Policy][ip-policy].

## Eclipse Contributor Agreement

In order to be able to contribute to Eclipse Foundation projects you must
electronically sign the [Eclipse Contributor Agreement (ECA)][eca].

The ECA provides the Eclipse Foundation with a permanent record that you agree
that each of your contributions will comply with the commitments documented in
the Developer Certificate of Origin (DCO). Having an ECA on file associated with
the email address matching the "Author" field of your contribution's Git commits
fulfills the DCO's requirement that you sign-off on your contributions.

For more information, please see the [Eclipse Committer Handbook][commiter-handbook].

## Pull request guidelines

**Changes to the project** are made by submitting code with a pull request (PR).

* [How to write and submit changes][creating-changes]
* [Example pull request][issue-402]

**Good commit messages** make it easier to review code and understand why the changes were made.
Please include a:

* *Title:* Concise and complete title written in imperative (e.g. "Update Gitpod demo screenshots"
or "Single-click to select or open trace")
* *Problem:* What is the situation that needs to be resolved? Why does the problem need fixing?
Link to related issues (e.g. "Fixes [#317][issue-317]").
* *Solution:* What changes were made to resolve the situation? Why are these changes the right fix?
* *Impact:* What impact do these changes have? (e.g. Numbers to show a performance improvement,
screenshots or a video for a UI change)
* [*Sign-off:*][sign-off] Use your full name and a long-term email address. This certifies that you
have written the code and that, from a licensing perspective, the code is appropriate for use in open-source.

Other commit information:

* [How to format the message][commit-message-message]
* [Example commit message][commit-message-example]

## New contributors

### Explore the project context

* **Check out the [tracevizlabs][tracevizlab].** You don't need to complete all of them, but reading
a couple is good for context. Lab sets 0 and 1 are especially useful.
* **Browse recent conference presentations.** They give an overview of the trace viewer's goals,
[architecture][architecture], and functionality.
* *Trace Compass Cloud: Eclipse Trace Compass's migration towards Theia*, [slides][tracompa-cloud-slides],
[video][tracompa-cloud-video] - Bernd Hufmann, Ericsson AB (EclipseCon 2021)
* *Using Theia to take trace analysis and visualization to the next level*, [slides][tracing-with-theia-slides],
[video][tracing-with-theia-video] - Bernd Hufmann, Ericsson AB (EclipseCon 2019)
* *A New Flexible Architecture for Trace Compass*, [slides][flexible-architecture-slides],
[video][flexible-architecture-video] - Michel Dagenais, Polytechnique Montréal ([Tracing Summit 2019][tracing-summit])
* **Get an [overview of external components][external-components]** used by this trace viewer. See how they interact.

### Start with a small change

* **Explore the [Gitpod demo][gitpod-demo].** Experiment with the trace viewer. Start exploring
its code via Gitpod's in-browser IDE.
* **Start with a small frontend improvement.** A relevant change can be [less than 5 lines of code][issue-369].
The Theia-based frontend repo is much less complex than the Trace Server's, so by starting in the frontend
you'll learn high-level context about the project's different components without being overwhelmed with complexity.
* [Good first issues][good-first-issues]
* *Develop with Gitpod to initially avoid dev setup.* Put `gitpod.io/#` before your project fork's GitHub URL
to open an in-browser IDE and initially avoid any local dev setup. This dev approach works best for small changes
because Gitpod workspaces are volatile.
* *Learn [how to contribute code][pr-guide].* Starting with a tiny change means you can first focus on exploring
the code as well as learning the submission and review process (which is a significant learning step if you've
never submitted a PR before).

## Contact

For issues related to the Trace Viewer, please open a GitHub tracker for the [Theia Trace Extension][trace-viewer].

For issues concerning `eclipse-cdt-cloud`, please refer to the contact options listed on the [CDT.Cloud website][cdt-cloud-website].

[architecture]: https://github.com/theia-ide/theia-trace-extension#architecture
[cdt-cloud-website]: https://cdt-cloud.io/contact/
[code-of-conduct]: https://github.com/eclipse/.github/blob/master/CODE_OF_CONDUCT.md
[commit-message-example]: https://github.com/theia-ide/theia-trace-extension/commit/bc18fcd110d7b8433293692421f2e4fb49f89bd6
[commit-message-message]: https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[commiter-handbook]: https://www.eclipse.org/projects/handbook/#resources-commit
[contact-us]: #contact
[creating-changes]: https://www.dataschool.io/how-to-contribute-on-github/
[dev-process]: https://eclipse.org/projects/dev_process
[eca]: http://www.eclipse.org/legal/ECA.php
[external-components]: https://github.com/theia-ide/theia-trace-extension#related-code
[first-issues]: https://github.com/theia-ide/theia-trace-extension/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
[flexible-architecture-video]: https://www.youtube.com/watch?v=8s5vGf45e-g
[flexible-architecture-slides]: https://tracingsummit.org/ts/2019/files/Tracingsummit2019-theia-dagenais.pdf
[gitpod-demo]: https://github.com/theia-ide/theia-trace-extension#try-a-live-demo-via-gitpod
[ip-policy]: https://www.eclipse.org/org/documents/Eclipse_IP_Policy.pdf
[issues]: https://github.com/eclipse-cdt-cloud/theia-trace-extension/issues
[issue-317]: https://github.com/theia-ide/theia-trace-extension/issues/317
[issue-369]: https://github.com/theia-ide/theia-trace-extension/pull/369/files
[issue-402]: https://github.com/theia-ide/theia-trace-extension/pull/402
[new-contributors]: #new-contributors
[pr-guide]: #pull-request-guidelines
[pull-requests]: https://github.com/eclipse-cdt-cloud/theia-trace-extension/pulls
[sign-off]: https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---signoff
[trace-viewer]: https://github.com/eclipse-cdt-cloud/theia-trace-extension
[tracevizlab]: https://github.com/dorsal-lab/Tracevizlab
[tracing-with-theia-video]: https://www.youtube.com/watch?v=Fysg1mOadik
[tracing-with-theia-slides]: https://www.eclipsecon.org/sites/default/files/slides/EclipseConEurope2019-TraceCompass-Theia.pdf
[tracing-summit]: https://tracingsummit.org/ts/2019/
[tracompa-cloud-video]: https://www.youtube.com/watch?v=DFxWXE4A-uQ
[tracompa-cloud-slides]: https://www.eclipsecon.org/sites/default/files/slides/EclipseCon2021-TraceCompassCloud.pdf
47 changes: 3 additions & 44 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ Theia trace viewer extension using the [tsp-typescript-client](https://github.co

Prerequisites for running this extension are the same as those for [running the Theia IDE](https://github.com/eclipse-theia/theia/blob/master/doc/Developing.md#prerequisites).

**👋 Want to help?** Read our [new contributor guide](https://github.com/theia-ide/theia-trace-extension#new-contributors) and see [how to contribute code](https://github.com/theia-ide/theia-trace-extension#how-to-contribute-code).
⚠️ Apart from the live demo, the application and its development environment only work on Linux operating systems.
**👋 Want to help?** Read our [contributor guide](CONTRIBUTING.md) and follow the instructions to contribute code.
⚠️ The application and its development environment works best on Linux operating systems. If you are trying to run the application or the development environment on Windows or MacOs and you are encountering issues, please open a [GitHub issue](https://github.com/eclipse-cdt-cloud/theia-trace-extension/issues).

## What is Tracing?

Expand Down Expand Up @@ -237,47 +237,6 @@ This section shows detailed information about a selected:

![Trace Viewer Item Properties](https://raw.githubusercontent.com/theia-ide/theia-trace-extension/master/doc/images/theia-trace-extension-item-properties-0.0.2.png)

## New contributors

⚠️ **Linux only!** Currently, the development environment for this project only works on Linux.

### Explore the project context

* **Check out the [tracevizlabs](https://github.com/dorsal-lab/Tracevizlab).** You don't need to complete all of them, but reading a couple is good for context. Lab sets 0 and 1 are especially useful.
* **Browse recent conference presentations.** They give an overview of the trace viewer's goals, [architecture](https://github.com/theia-ide/theia-trace-extension#architecture), and functionality.
* *Trace Compass Cloud: Eclipse Trace Compass's migration towards Theia*, [slides](https://www.eclipsecon.org/sites/default/files/slides/EclipseCon2021-TraceCompassCloud.pdf), [video](https://www.youtube.com/watch?v=DFxWXE4A-uQ) - Bernd Hufmann, Ericsson AB (EclipseCon 2021)
* *Using Theia to take trace analysis and visualization to the next level*, [slides](https://www.eclipsecon.org/sites/default/files/slides/EclipseConEurope2019-TraceCompass-Theia.pdf), [video](https://www.youtube.com/watch?v=Fysg1mOadik) - Bernd Hufmann, Ericsson AB (EclipseCon 2019)
* *A New Flexible Architecture for Trace Compass*, [slides](https://tracingsummit.org/ts/2019/files/Tracingsummit2019-theia-dagenais.pdf), [video](https://www.youtube.com/watch?v=8s5vGf45e-g) - Michel Dagenais, Polytechnique Montréal ([Tracing Summit 2019](https://tracingsummit.org/ts/2019/))
* **Get an [overview of external components](https://github.com/theia-ide/theia-trace-extension#related-code)** used by this trace viewer. See how they interact.

### Start with a small change

* **Explore the [Gitpod demo](https://github.com/theia-ide/theia-trace-extension#try-a-live-demo-via-gitpod).** Experiment with the trace viewer. Start exploring its code via Gitpod's in-browser IDE.
* **Start with a small frontend improvement.** A relevant change can be [less than 5 lines of code](https://github.com/theia-ide/theia-trace-extension/pull/369/files). The Theia-based frontend repo is much less complex than the Trace Server's, so by starting in the frontend you'll learn high-level context about the project's different components without being overwhelmed with complexity.
* [Good first issues](https://github.com/theia-ide/theia-trace-extension/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22)
* *Develop with Gitpod to initially avoid dev setup.* Put `gitpod.io/#` before your project fork's GitHub URL to open an in-browser IDE and initially avoid any local dev setup. This dev approach works best for small changes because Gitpod workspaces are volatile.
* *Learn [how to contribute code](https://github.com/theia-ide/theia-trace-extension#how-to-contribute-code).* Starting with a tiny change means you can first focus on exploring the code as well as learning the submission and review process (which is a significant learning step if you've never submitted a PR before).

## How to contribute code

**Changes to the project** are made by submitting code with a pull request (PR).

* [How to write and submit changes](https://www.dataschool.io/how-to-contribute-on-github/)
* [Example pull request](https://github.com/theia-ide/theia-trace-extension/pull/402)

**Good commit messages** make it easier to review code and understand why the changes were made. Please include a:

* *Title:* Concise and complete title written in imperative (e.g. "Update Gitpod demo screenshots" or "Single-click to select or open trace")
* *Problem:* What is the situation that needs to be resolved? Why does the problem need fixing? Link to related issues (e.g. "Fixes [#317](https://github.com/theia-ide/theia-trace-extension/issues/317)").
* *Solution:* What changes were made to resolve the situation? Why are these changes the right fix?
* *Impact:* What impact do these changes have? (e.g. Numbers to show a performance improvement, screenshots or a video for a UI change)
* [*Sign-off:*](https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---signoff) Use your full name and a long-term email address. This certifies that you have written the code and that, from a licensing perspective, the code is appropriate for use in open-source.

Other commit information:

* [How to format the message](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
* [Example commit message](https://github.com/theia-ide/theia-trace-extension/commit/bc18fcd110d7b8433293692421f2e4fb49f89bd6)

## Related code

This trace viewer depends on code from several other repos. Sometimes resolving issues in the trace viewer repo requires making changes in these code bases:
Expand Down Expand Up @@ -318,7 +277,7 @@ When adding new packages on Windows using yarn (e.g `yarn add @vscode/codicons`)
An unexpected error occurred: "expected workspace package to exist for {some package name}"
```

A simple solution would be restoring the project to a clean state prior to the installation of the package, then restarting Powershell in administrator mode and re-run the command to add the new package.
A simple solution would be restoring the project to a clean state prior to the installation of the package, then restarting Powershell in administrator mode and re-run the command to add the new package.

## Architecture

Expand Down

0 comments on commit 06ffb25

Please sign in to comment.