open-telemetry / opentelemetry-php

The OpenTelemetry PHP Library
https://opentelemetry.io/docs/instrumentation/php/
Apache License 2.0
750 stars 186 forks source link

Changing versioning for our packages for the beta release: #837

Closed bobstrecansky closed 1 year ago

bobstrecansky commented 2 years ago

Shamelessly stolen from @Nevay 👍🏼

We likely have to change our versioning for beta (we currently use the monorepo tags for every subsplit, right?) - packages should be versioned independently, we don't want to bump our API version for unrelated SDK changes (spec).

bobstrecansky commented 2 years ago

@Nevay - do you have an idea for an implementation strategy for this?

brettmc commented 2 years ago

One idea I had, that I haven't fully thought through: if we just git-split main into our read-only repos (or just don't tag in the monorepo), then we can instead tag in the subsplit repositories. The downside of that is that we (maintainers) would need to identify everything that's changed and go tag it manually. So, more manual work and the possibility of missing tagging things (although I'm sure we could come up with a process, eg looking at diffs since last release)

bobstrecansky commented 2 years ago

Brett and I discussed the splitting of the API and the SDK as it pertains to tagging and releasing today. https://github.com/open-telemetry/opentelemetry-php/issues/837

We are semi-conflicted about the next steps that we should take. We discussed not versioning the main repository, but rather versioning the git split other packages, namely the API and SDK read only packages. If we decide to not version the main repository, we will be able to successfully release other packages independently, which is part of the specification. This may be confusing to end users that expect the version of the main repository to be current and up to date with the most recent release.

If we decide that we want to continue to use the versioning system in the main repository, we’ll have to make releases for the API and the SDK in a coupled fashion, which doesn’t follow spec. Does anyone have experience with performing this action? We were looking at prior art in the symfony and laravel repositories, but it was unclear what is the best path forward to being able to deliver separate portions of our codebase separately. It does appear that both Java and Go are doing something similar to what we are doing now.

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 1 year ago

This issue has been automatically closed because it has not had recent activity, but it can be reopened. Thank you for your contributions.

brettmc commented 1 year ago

This has been actioned, and we now version all packages independently (against the subtree splits over in https://github.com/opentelemetry-php)