-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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 stable modules with otel release versions and not just release candidates #8063
Comments
I think unfortunately this is how the |
Yeah I understand that, but imo the fact that this is how the
Is there a timeline for this? And will this same release candidate interim happen for each module being marked stable? If not, I have a proposed solution that would mitigate the problem. If these modules that have "release candidate" versions were also simultaneously published under a "release" tag that synced up with all the other modules, this wouldn't be a problem. The restriction of not keeping release versions updated for modules that are marked stable feels like an adverse side effect. I don't know much about how releases are done, but I can try to learn such that I'd contribute it myself if the maintainers would be okay with this approach. |
IMO it exposes a flaw in the
@dmitryax may be able to speak on pdata's stabilization, but in general I don't think we are able to provide a timeline for this at the moment (you are welcome to help us figure one out!).
Do you have examples of other repositories doing this? I am personally not entirely opposed to the idea but I haven't seen anyone else do this (e.g. opentelemetry-go's process is similar to ours) |
Also fully agree! A similar
That is understandable and fine for this case; mostly wanted to get a sense for whether it was worth pursuing a solution to the release weirdness or if this was just something that was incoming and I complained for nothing 😁
I don't know if there are any other large multi-module projects putting themselves in the situation that this repo is currently in, so I've been unable to find any examples. I'm going to spin up my own proof-of-concept multi-module repo with the release shape that I'm proposing to make sure it would work the way I think it does. |
#6794 is the only issue that needs to be resolved for pdata 1.0, and it's a pretty big one. We ran through a few iterations and tried several solutions. All of them have some cons. The most promising copy-on-write approach introduces a performance hit. We discussed with @bogdandrutu another option requiring generating protobuf files with pdatagen. I'll try this once after some other work in the collector (the new exporter helper). Regardless, we should move from RC this year. I agree it's been too long. |
prometheus/prometheus/pull/12623 is related to this, either because of |
So I spun up https://github.com/braydonk/go-multimod-rc-releases to demonstrate what I mean by publishing modules under release and release candidate at the same time. I made two modules, To test this, you can make a new directory and Get
Get
The release candidate version of
But
(this output looks a bit different, I had already downloaded v0.1.0 from the previous commands so it was in my package cache) Hopefully this little proof-of-concept repo demonstrates what I'm proposing: if we were hypothetically publishing the next |
Make the filtering for existing issues strict to avoid picking unrelated issues. This happened in during 0.84.0 release ``` + RELEASE_VERSION=v/v0.84.0 + '[' '' == '' ']' + RELEASE_VERSION=v0.84.0 + '[' 0.84.0 == '' ']' ++ gh issue list --search 'Release v0.84.0' --json url --jq '.[].url' --repo open-telemetry/opentelemetry-collector + EXISTING_ISSUE=open-telemetry#8063 + '[' open-telemetry#8063 '!=' '' ']' + echo 'Issue already exists: open-telemetry#8063' + exit 0 Issue already exists: open-telemetry#8063 ```
Make the filtering for existing issues strict to avoid picking unrelated issues. This happened in during 0.84.0 release ``` + RELEASE_VERSION=v/v0.84.0 + '[' '' == '' ']' + RELEASE_VERSION=v0.84.0 + '[' 0.84.0 == '' ']' ++ gh issue list --search 'Release v0.84.0' --json url --jq '.[].url' --repo open-telemetry/opentelemetry-collector + EXISTING_ISSUE=#8063 + '[' #8063 '!=' '' ']' + echo 'Issue already exists: #8063' + exit 0 Issue already exists: #8063 ```
On today's SIG we decided to release pdata 1.0 after we have merged #8494 and have done at least one release to make sure we get feedback |
Releasing pdata 1.0 is a good thing, but it is orthogonal to this issue itself. This is about the structure of releases, which will continue being a problem as any package moves to |
Discussed in the Oct 25 Collector SIG meeting. After I can either leave this issue open and idle until we reach that point, or I can open a new one now and close this one. |
Clarifies our stance regarding RC releases, inspired by #8935 (comment). In a nutshell: - Stabilization criteria have to be met for at least two minor version releases before moving to the stable module. - We treat these two (or more) minor releases as release candidates and do not release under the `-rc` release family. - After these releases, we move directly to the `1.x` release family. **Link to tracking Issue:** Fixes #8063 (together with the upcoming 1.0 release for pdata and featuregate) cc @braydonk --------- Co-authored-by: Anthony Mirabella <[email protected]>
Clarifies our stance regarding RC releases, inspired by open-telemetry#8935 (comment). In a nutshell: - Stabilization criteria have to be met for at least two minor version releases before moving to the stable module. - We treat these two (or more) minor releases as release candidates and do not release under the `-rc` release family. - After these releases, we move directly to the `1.x` release family. **Link to tracking Issue:** Fixes open-telemetry#8063 (together with the upcoming 1.0 release for pdata and featuregate) cc @braydonk --------- Co-authored-by: Anthony Mirabella <[email protected]>
Is your feature request related to a problem? Please describe.
When I want to update the
go.opentelemetry.io/collector
dependencies in my project, I'd like to justgo get
all the dependencies@latest
. Withfeaturegate
andpdata
being marked as stable, they are only being published as release candidates. This means@latest
doesn't work properly; while all the othercollector
latest dependencies arev0.81.0
as of writing,featuregate
for examplelatest
resolves tov0.77.0
. This ruins the process of just updating all collector dependencies, because featuregate requires lower versions of the other depedencies meaning they resolve in various incorrect ways.Describe the solution you'd like
It would be great if
latest
could resolve to the same thing for these two stable modules as all the others, even if the tags aren't exactly the same thing.Describe alternatives you've considered
The current strategy will be to exclude these from the automatic upgrade process and manually grab the latest tags for these modules. This is manual work in what in the past has always been a simple automatic upgrade. This also means I'll presumably need to do this with any future modules being marked stable.
Additional context
I am able to provide screenshots or pastebins similar to https://cloud-native.slack.com/archives/C01N6P7KR6W/p1689092712052069 if it will help.
The text was updated successfully, but these errors were encountered: