Skip to content

fix(analysis): remove blanket warning suppression #1231

Description

@seonghobae

Problem

services/analysis-engine/pyproject.toml on protected develop@314ddeae7b775a4957594b599358c8255617eb2e configured pytest with repository-wide ignore::DeprecationWarning. Production audio loaders also installed runtime warning suppressions around Temporal Analysis, Transcription, and Separation. These policies can hide owned deprecated APIs and dependency compatibility regressions from the normal test gate.

Python distinguishes DeprecationWarning and FutureWarning by intended audience. Both can signal compatibility work that must be root-caused. A warning-policy repair therefore cannot stop at removing the global deprecation ignore while leaving FutureWarning as log-only output or loader-side warnings.filterwarnings("ignore", ...) calls in place.

Required repair

  1. Remove the blanket pytest ignore::DeprecationWarning on the dedicated analysis-engine owner PR; do not mix this into Signal-MIR research(mir): preregister structure feature noninferiority evidence #1228.
  2. Fail tests on unowned DeprecationWarning and FutureWarning.
  3. Remove loader-side runtime warning ignores before collecting the exact-head warning inventory; otherwise CI cannot observe the warning that would justify or retire an exception.
  4. Run the full Python suite and capture each distinct warning with category, message, originating package/module, and call path.
  5. For BandScope-owned deprecated APIs, migrate the code and add regression coverage.
  6. For an upstream-only warning, first upgrade or change the call path. Reintroduce a temporary suppression only after the exact warning identity, upstream cause, regression coverage, and concrete removal condition are documented.
  7. Re-run the normal coverage/docstring/lint/type checks plus hosted CI, security, SAST, SBOM, and cross-platform build gates.

Acceptance

  • pyproject.toml fails closed on unowned DeprecationWarning and FutureWarning.
  • The three scoped production audio loaders do not discard runtime warnings before the test/CI gate observes them.
  • Full tests expose zero unowned compatibility warnings.
  • Any later temporary suppression is evidence-backed, exact, tested, and tied to a concrete removal condition.
  • No required CI/security/build gate is weakened.
  • Exact-head independent non-author review is complete before merge.

Evidence

Protected develop@314ddeae7b775a4957594b599358c8255617eb2e contains the original global deprecation ignore and loader-side warning filters. Draft #1232 (repair/analysis-deprecation-warnings-1231) is the canonical repair path at exact head 39ecb0eef845b2cadea2fd349ce29a37c59b4a73. This issue remains intentionally separate from #1228 so the scientific evidence-admission PR remains a single-writer Signal-MIR vertical.

The current #1232 head reached hosted build-baseline: macOS arm64 built successfully, while macOS Intel failed before Python dependency sync/product build because Corepack's acquisition of pinned npm 10.9.9 ended in a registry ETIMEDOUT. That is a valid runtime-provenance finding but not owned by this warning-policy lane. Canonical Node/npm owner #896 now carries a bounded exact-runtime acquisition RED→repair and remains Draft pending exact-head verification. #1232 must not duplicate that workflow/dependency change or count a sibling-owner fix as current-head GREEN.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpriority: highHigh-priority or P1 work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions