-
Notifications
You must be signed in to change notification settings - Fork 698
Strategy for releasing experimental logs (and metrics in future) #2233
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
Comments
@overmeulen @plajjan Both of you have expressed interest in using the experimental work in this issue #1890. Please share your feedback as well. |
No emoji voting? I'll start with 🚀 for |
Done, +1 for a private module in main |
🚀 |
For (2), this means users would probably have to change their code (import paths) when we move from experimental -> stable right? Also what exactly should we do in terms of informing users of the experimental signals? Include this in the README for api/sdk packages? |
Might be worth adding a table to the main readme in the repo and maybe even adding a section for experimental modules in each release notes? |
@lzchen Correct but we can always deprecate |
We could also have |
@owais |
@aabmass what are your thoughts on this? you usually play devil's advocate and put forward alternative approaches. |
Hey, I just realized something: I do have an objection, the winning approach messes up the git history. To be considered. Having a separate long-standing branch is much less of a problem if it is rebased on top of |
I'm a little confused. The issue title is about how to release, which in my head translates to pip packages etc, but then goes on to talk about branches, which is how to deal with source code. I'm really a user of this library, so my focus is on how I can consume it and as long as I can install like the latest version of tracing together with experimental versions of logs + metrics, I am happy. Extra points for being able to pin versions of tracing separate from (logs + metrics). I know how difficult long lived branches can be to maintain, so if I were developing on this repo, I guess I'd argue to avoid separate branches if possible. I dunno if it has to translate to _log in the source dir, I mean, can't that stuff be handled purely on the release end, like you bake separate packages for tracing vs (logs+metrics)? I don't feel entirely up to speed on how build + release works here, so maybe my confusion detracts from the conversation. Apologies if so. |
Not sure I understand this completely but this looks fine to me https://github.com/open-telemetry/opentelemetry-python/compare/logs. |
@ocelotl I would recommend using a rebase commit rather than a squash merge for committing the changes from a long standing branch. Otherwise you're right the git history would be lost. |
I've mistakenly done the latter before so we probably should add this to |
Now that both logs and metrics have been merged in main as private packages is it possible to do a new release of opentelemetry-python ? |
@overmeulen the discussion from the last SIG meeting was that the next release would happen sometime this week. |
@lonewolf3739 |
Starting this new thread to find a consensus on how do we want to release the experimental logs sdk. This equally applies to the metrics prototype when it becomes ready. I looked at how other SIGs have approached this and at this point only Java SIG is actively working on both metrics and logs implementation. They have signal specific packages. Metrics and Logs sdk are released as 1.x.0-alpha separately.
The idea of releasing signal specific packages may not be reasonable choice for Python SIG now. We probably have two (please comment if any alternative approaches) options to pick from
opentelemetry.(_logs/_metrics).{...}
) and develop on top it. Once people start using it we will receive a feedback, bug fixes, enhancements. All of it can happen in parallel without any problem. It also makes maintainer life little easier.I think the latter has many advantages since it avoids all the pitfalls of feature branches with a caveat that experimental work will be part of stable release packages. I think it is fine as long as we explicitly call out that There are no guarantees provided and everything will be private until it is marked as stable and warn users they are at their own risk using the non-stable parts in their code. I don't think we will have any drastic changes but still no compatibility guarantees between versions. Our rationale document has different approach to this https://github.com/open-telemetry/opentelemetry-python/blob/main/rationale.md#immature-or-experimental-signals. Please share your thoughts and suggestion. Please vote your preferred approach using emojis 🚀 ->
_logs
🎉 -> feature branch.The text was updated successfully, but these errors were encountered: