open-telemetry / open-telemetry/opentelemetry-cpp

Binary releases and package management

Open
#2,682 14 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement Stale triage/accepted
Dominant language
C++
Stars
1.4k
Forks
632
Avg merge
1d 13h
Merged PRs (30d)
75

Description

Is your feature request related to a problem?

When I want to use OpenTelemetry C++ I currently have 2 options to do so:

  1. I build the code myself from the sources
  2. I use an "unofficial", maybe not stable package if it is available for my environment (see below)

For most users only option (1) is available and it's a huge entry barrier for people to get started with OpenTelemtry C++. A good example on the level of complexity is the Getting Started, which asks a lot of steps that need to be accomplished to get an app up and running.

Describe the solution you'd like

We discussed this during one of the last SIG meetings and this is a follow up issue on that: to make it easier for end-users to get started with OpenTelemetry C++ there are two options to address that:

  1. Provide binary releases for major platforms (OS + arch), similar to the releases the collector provides (see https://github.com/open-telemetry/opentelemetry-collector-releases/releases)
  2. Add support for common package managers (rpm, deb, ebuild, apk, homebrew), or if available already, collaborate with the maintainers of those packages to provide first-level support.

Both options are not mutually exclusive, indeed by providing binary releases some publications for package managers are easier as well (except they require reproducable builds).

I suggest the following steps:

Describe alternatives you've considered

Do nothing.

Additional context

Addressing this issue does not require deep understanding of C++ but knowledge around releasing and publishing open source packages. Therefore I suggest this issue gets tagged with "help wanted".

Existing packages from 3rd parties:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the referenced collector release workflow, .github/workflows/release-core.yaml, and review the listed third-party vcpkg, Alpine, Homebrew, and ebuild packages. Define the supported platforms, binary-release process, and package-manager update approach; done means the agreed release and packaging work is implemented and documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, github-actions
Domain
build-system, devops, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.