Conversation
…missing Two code paths in FastStreamBootstrapper referenced symbols from optional extras unconditionally, bypassing the check_dependencies skip-with-warning machinery and raising NameError at bootstrap time when prometheus_client or opentelemetry was absent (issue #87). - BaseBootstrapper._register_or_skip now calls check_dependencies on the instrument class before instantiation, so an instrument whose __init__ references gated symbols (e.g. FastStreamPrometheusInstrument's collector_registry default_factory) is skipped cleanly. - FastStreamHealthChecksInstrument.bootstrap guards the tracer reference with import_checker.is_opentelemetry_installed so the default opentelemetry_generate_health_check_spans=True no longer crashes installs without the opentelemetry extra. - Adds regression tests plus a conftest helper that wipes the bootstrapper module's globals before reload, so the conditional-import branches re-evaluate against the patched import_checker flags. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests.
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
hasansezertasan
added a commit
to PaketMutfak/croupier
that referenced
this pull request
May 13, 2026
Bumps lite-bootstrap to 0.28.1, which ships the upstream fix (modern-python/lite-bootstrap#88): check_dependencies() is now consulted before instrument instantiation, and the FastStreamHealthChecksInstrument tracer reference is gated behind is_opentelemetry_installed. Removes the _Bootstrapper subclass, the opentelemetry_generate_health_check_spans=False override, and the related CLAUDE.md section.
Merged
5 tasks
lesnik512
added a commit
that referenced
this pull request
Jun 2, 2026
PR #107 (instrument skip rework) shipped a few days after the original arc closed. Captured three new datapoints worth recording: - Mid-design pivot worked: user pushback on the is_configured arg forced the design through pre-#88 history and confirmed the classmethod-with-arg pattern was correct. - Defensive workaround was wrong design: my _get_logger() fresh-per- call structlog proxy made tests pass but the user's pivot to stdlib logging + public build_summary() was the actual right answer. caplog (which the original plan flagged but the subagent ignored) was the correct test mechanism. - LSP violations on classmethod parameter overrides are an emergent pattern: 3 framework instrument overrides needed # ty: ignore[invalid-method-override] because they narrow bootstrap_config covariantly. Existing field-narrowing pattern is accepted; method-param narrowing now needs the explicit ignore. Added action items #8 (workaround-vs-framework-choice heuristic), #9 (cap subagent dispatch scope; the ~60-minute connection drop orphaned work), and #10 (document the LSP override pattern in CLAUDE.md). Reaffirms the original retro's closing observation: subagent loop reliably produces a green-tests implementation of the spec, but the spec is rarely the right design. Design emerges during review iteration. PR #107 needed 5 user follow-up commits after the mechanical migration landed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two code paths in FastStreamBootstrapper referenced symbols from optional extras unconditionally, bypassing the check_dependencies skip-with-warning machinery and raising NameError at bootstrap time when prometheus_client or opentelemetry was absent (issue #87).