Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Publish a bom? #348

Open
breedx-splk opened this issue May 7, 2024 · 9 comments · May be fixed by #809
Open

Publish a bom? #348

breedx-splk opened this issue May 7, 2024 · 9 comments · May be fixed by #809
Labels
ci/cd v1.0.0-required This is required to reach v1.0.0 (stability)

Comments

@breedx-splk
Copy link
Contributor

The other java-based projects (core, instrumentation, maybe even semconv?) publish a bom (bill-of-materials) that gradle can use to keep dependency versions aligned. As we continue to modularize the repository and publish more independent, smaller artifacts, this becomes increasingly important.

Is a bom a normal/standard thing to do for Android projects as well? I suspect so, since gradle is being used.

The goal is to prevent end-users and distros from having to specify individual versions. Specifying the version number for the bom should suffice.

@marandaneto
Copy link
Member

yes, it is, okhttp for example has a bom

@LikeTheSalad
Copy link
Contributor

I think it's fine, although for now we set the same version to all the modules so, are you referring to a future use-case where we might have separate repos related to OTel Android, each with their own version?

@marandaneto
Copy link
Member

I think the goal of a bom is to use the very same version for all modules, so you know it's compatible.

future use-case where we might have separate repos related to OTel Android, each with their own version

if that's the case, then a bom isn't recommended.

@LikeTheSalad
Copy link
Contributor

I think the goal of a bom is to use the very same version for all modules, so you know it's compatible.

Yeah, and I guess that's the reason I'm a bit confused about using it here, since all the modules are released with the same version. So it means that as long as the same version is used when adding all of them as dependencies, they will always be compatible. Though don't get me wrong, I don't have a strong opinion on not using BOMs, is just that I find them more useful when there are different versions involved.

Although I guess it could be handy for users who might be duplicating the same version across all the dependencies provided by this project, without using variables and/or version catalogs.

@marandaneto
Copy link
Member

Although I guess it could be handy for users who might be duplicating the same version across all the dependencies provided by this project, without using variables and/or version catalogs.

That's why I find it useful as well, so I have to update only once/in a single place, and not be worried about incompatible versions instead of people doing it manually (first they would need to know that versions should match, maybe they don't).

@breedx-splk breedx-splk added the v1.0.0-required This is required to reach v1.0.0 (stability) label Aug 7, 2024
@marandaneto
Copy link
Member

I think it's not needed for v1 since this can be added later, and people can migrate to the BOM whenever they want.

@breedx-splk
Copy link
Contributor Author

I think it's not needed for v1 since this can be added later, and people can migrate to the BOM whenever they want.

Technically true, but I'd like to see it. It makes to project feel more cohesive and mature IMO. Prefer to keep the tag for now, but maybe we don't let it be a showstopper. :)

@bidetofevil
Copy link
Contributor

+1 to publishing a BoM. Folks that use this project shouldn't need to think about what versions of other dependencies that it has that it may want to import, e.g. semconv, SDK, etc. Using whatever versions the Android BoM stipulates would be the easiest thing to do for apps.

@marandaneto
Copy link
Member

@breedx-splk An example of a simple script that might work such as https://github.com/getsentry/sentry-java/blob/main/sentry-bom/build.gradle.kts

@LikeTheSalad LikeTheSalad linked a pull request Feb 10, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci/cd v1.0.0-required This is required to reach v1.0.0 (stability)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants