Contributing to OpenTelemetry Demo Webstore

Welcome to the OpenTelemetry Demo Webstore repository! This guide is designed to help you get started with contributing to the project. Before diving in, it’s essential to familiarize yourself with the OpenTelemetry project’s general contributing guidelines. You can find them here.

Join a SIG Call

Joining the OpenTelemetry community is an excellent way to learn and contribute. The team meets weekly on Monday’s at 8:15 AM PT. Check the OpenTelemetry community calendar for specific dates and Zoom meeting links. Meeting notes are available as a public Google doc.

Sign the CLA

Before you can contribute, you will need to sign the Contributor License Agreement.

Find a Buddy and Get Started Quickly

If you’re looking for guidance on getting started with your first contribution, join the OpenTelemetry community Slack channel and find a buddy!

  1. Create your CNCF Slack account.
  2. Join the otel-community-demo channel.
  3. Post an introduction, your area of interest, and your request for a buddy.

Your OpenTelemetry buddy is there to help you understand the contributing process, provide context, review PRs, and answer any questions you may have.

Development Environment

To contribute to the OpenTelemetry Demo Webstore, you’ll need the following prerequisites:

Clone Repository

  1. Clone the repository:
git clone https://github.com/open-telemetry/opentelemetry-demo.git

Open Folder

Navigate to the cloned folder:

cd opentelemetry-demo/

Gradle Update [Windows Only]

Navigate to the Java Ad Service folder to install and update Gradle:

cd .\src\adservice\
.\gradlew installDist
.\gradlew wrapper --gradle-version 7.4.2

Run Docker Compose

Start the demo:

docker compose up -d

Verify the Webstore & the Telemetry

Access the following services:

Create Your First Pull Request

How to Send Pull Requests

  1. Fork the project in GitHub and clone the upstream repo:
git clone https://github.com/open-telemetry/opentelemetry-demo.git
  1. Navigate to the repo root:
cd opentelemetry-demo
  1. Add your fork as an origin:
git remote add fork https://github.com/YOUR_GITHUB_USERNAME/opentelemetry-demo.git
  1. Check out a new branch, make modifications, and push the branch to your fork:
$ git checkout -b feature
# change files
# Test your changes locally.
$ docker compose up -d --build
# Go to Webstore, Jaeger or docker container logs etc. as appropriate to make sure your changes are working correctly.
$ git add my/changed/files
$ git commit -m "short description of the change"
$ git push fork feature
  1. Open a pull request against the main opentelemetry-demo repo.

How to Receive Comments

  • Make sure your PR is not marked as draft.
  • Ensure the CLA is signed, and all required CI checks are clear.
  • Submit small, focused PRs addressing a single concern/issue.
  • Make sure the PR title reflects the contribution.
  • Write a summary that helps understand the change.
  • Include usage examples in the summary, where applicable.
  • Include benchmarks (before/after) in the summary, for contributions that are performance enhancements.

How to Get PRs Merged

A PR is considered ready to merge when:

  • It has received approval from Approvers/Maintainers.
  • Major feedbacks are resolved.
  • It has been open for review for at least one working day.
  • The documentation and Changelog have been updated to reflect the new changes.
  • Trivial changes (typo, cosmetic, doc, etc.) don’t have to wait for one day.

Any Maintainer can merge the PR once it is ready to merge. Note that some PRs may not be merged immediately if the repo is in the process of a release and maintainers decide to defer the PR to the next release train.

If a PR has been stuck, the owner should try to get people aligned by:

  • Consolidating perspectives and putting a summary in the PR.
  • Tagging subdomain experts.
  • Reaching out to more people on the CNCF OpenTelemetry Community Demo Slack channel.
  • Narrowing down the scope of the PR or splitting it up.
  • If none of the above worked and the PR has been stuck for more than 2 weeks, bring it to the OpenTelemetry Community Demo SIG meeting.

Making a new release

Maintainers can create a new release when desired by following these steps:

  1. Create a new Pull Request that updates the IMAGE_VERSION environment variable in .env to the new version number.
  2. Draft a new release, creating a new tag in the format x.x.x based on main. Automatically generate release notes. Prepend a summary of the major changes to the release notes.
  3. Click ‘Publish Release’.

For more information, refer to the OpenTelemetry Demo documentation.