open-telemetry / open-telemetry/opentelemetry-cpp
Binary releases and package management
Nobody has claimed this yet.
- 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:
- I build the code myself from the sources
- 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:
- 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)
- 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:
- Create a github workflow that builds & releases binaries for major platforms, similar to https://github.com/open-telemetry/opentelemetry-collector-releases/blob/main/.github/workflows/release-core.yaml
- Review different package managers if they allow (a) the use of binary releases and (b) automatic updates
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:
- vcpkg: https://vcpkg.link/ports/opentelemetry-cpp
- alpine (apk): https://gitlab.alpinelinux.org/alpine/aports/-/tree/master/testing/opentelemetry-cpp?ref_type=heads
- homebrew: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/o/opentelemetry-cpp.rb
- ebuild: https://cgit.gentoo.org/repo/gentoo.git/tree/dev-cpp/opentelemetry-cpp
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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