Skip to content

Conversation

xrmx
Copy link
Contributor

@xrmx xrmx commented Sep 12, 2025

Description

And then remove a bunch of dirs from the exclude list. Not sure if the code changes in SimpleSpanProcessor requires some tests with a span without context.

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

  • Test A

Does This PR Require a Contrib Repo Change?

  • Yes. - Link to PR:
  • No.

Checklist:

  • Followed the style guidelines of this project
  • Changelogs have been updated
  • Unit tests have been added
  • Documentation has been updated

And then remove a bunch of dirs from the exclude list.
@xrmx xrmx requested a review from a team as a code owner September 12, 2025 11:00
@xrmx xrmx added the Skip Changelog PRs that do not require a CHANGELOG.md entry label Sep 12, 2025

def on_end(self, span: ReadableSpan) -> None:
if not span.context.trace_flags.sampled:
if span.context and not span.context.trace_flags.sampled:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or the typing is wrong and context is not optional. Span has the same issue.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure the best way to go about this. ReadableSpan.context was made optional 2 years ago in #3528. I'm not sure why by looking at the PR and no linked issue. For Span.context it's not optional. Spec for Span Creation says api must accept Context, but I'm not sure if that means Context must not be null. If we changed ReadableSpan.context back to being mandatory that might break things.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to fix it for this PR? The change LGTM

If we changed ReadableSpan.context back to being mandatory that might break things.

Since we have this warning

class ReadableSpan:
"""Provides read-only access to span attributes.
Users should NOT be creating these objects directly. `ReadableSpan`s are created as
a direct result from using the tracing pipeline via the `Tracer`.

I think it would be OK to make it non-optional if you're able to guarantee it's always passed in. People shouldn't be constructing ReadableSpan, although they might do it in practice for testing.

@xrmx xrmx moved this to Easy to review / merge / close in @xrmx's Python PR digest Sep 15, 2025

def on_end(self, span: ReadableSpan) -> None:
if not span.context.trace_flags.sampled:
if span.context and not span.context.trace_flags.sampled:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to fix it for this PR? The change LGTM

If we changed ReadableSpan.context back to being mandatory that might break things.

Since we have this warning

class ReadableSpan:
"""Provides read-only access to span attributes.
Users should NOT be creating these objects directly. `ReadableSpan`s are created as
a direct result from using the tracing pipeline via the `Tracer`.

I think it would be OK to make it non-optional if you're able to guarantee it's always passed in. People shouldn't be constructing ReadableSpan, although they might do it in practice for testing.

"opentelemetry-sdk/src/opentelemetry/sdk/error_handler",
"opentelemetry-sdk/src/opentelemetry/sdk/metrics",
"opentelemetry-sdk/src/opentelemetry/sdk/trace/export",
"opentelemetry-sdk/src/opentelemetry/sdk/trace/__init__.py",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we remove this or still have issues?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This requires the same span ifdefery that has been added here

@xrmx xrmx force-pushed the moar-typechecking branch from b504184 to fd382c9 Compare September 18, 2025 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Skip Changelog PRs that do not require a CHANGELOG.md entry
Projects
Status: Easy to review / merge / close
Development

Successfully merging this pull request may close these issues.

4 participants