Add issue forms and label pull requests from the paths they touch#379
Conversation
Four issue forms, each scoped so the routing established in CONTRIBUTING holds: bug reports for failures with no standard in play, conformance defects for disagreements already established in a discussion, work items for implementing a standard, and documentation defects. The conformance and standard forms ask for the reference data up front, since that is what decides whether an item is actionable. Pull requests were never labelled by hand, so .github/labeler.yml applies them from the changed paths instead: kind of change, plus one area per package under src/phonometry/. tests/ mirrors those names, so a change and its tests land on the same label.
|
Warning Review limit reached
Next review available in: 11 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (8)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
🧙 Sourcery is reviewing your pull request! Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #379 +/- ##
=======================================
Coverage 96.82% 96.82%
=======================================
Files 218 218
Lines 30144 30144
=======================================
Hits 29188 29188
Misses 956 956 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
The labeler left three real clusters unlabelled: the committed report fiches under .github/reports, the tooling under .github/scripts, and the shared code under src/phonometry/_internal that every domain package depends on. The last one mattered most, since a change to code the whole library rests on went out with no area label at all. An 'area: core' entry now covers it along with the cross-cutting suites at the root of tests/. The API placeholder pointed at phonometry.levels.equivalent_level, which does not exist; the real name is phonometry.leq. It was wrong in the discussion form on main too, so both are corrected. The new-standard form used ISO 3382-2 and reverberation_time as its example, both already implemented, which told anyone checking for duplicates exactly the wrong thing. Also splits the code-versus-docs case: when the two disagree and you cannot tell which is wrong, it is a bug report, and the documentation form is for when the text is clearly the mistaken part. And the bug form no longer asks for a Python snippet from someone whose install failed.
|
Reviewed independently and pushed the fixes in af98e15. Three coverage holes in the labeler, all confirmed against the tree:
Two placeholders named things that do not exist:
Also: when code and documentation disagree the reporter cannot tell which is wrong, so that case now defaults to a bug report and the documentation form is reserved for when the text is clearly the mistaken part; and the bug form no longer demands a Python snippet and an installed version from someone whose install failed. Outside the diff, on the label set: Not taken: SHA-pinning |
Numerical conformance report✅ 427/427 conformance checks pass across 53 domains and 278 standards - filters class 1 - weightings within IEC 61672-1 class 1. Each row pins a standard clause to its expected normative value and the value the library computes. Every section below is collapsible and stays collapsed while all of its rows pass; a section with any failing row opens automatically. ✅ Numerical validation - filters & weightings: class showcase (IEC 61260-1 · IEC 61672-1 · ISO 7196)IEC 61260-1:2014 class per filter architecture (order 6, one-third-octave, 100 Hz-10 kHz, fs = 48 kHz). For each architecture the table shows, at its binding band, the measured relative attenuation and the class-1 limit it must clear, so the number and the range it must sit in are both visible. A positive margin means the acceptance limits are met with that much room.
Only Butterworth (the library default) and Chebyshev-II are class-compliant architectures. Chebyshev-I and elliptic trade the mask for passband ripple, and Bessel for a maximally-flat group delay (soft rolloff); they cannot satisfy the IEC 61260-1 Class 1/2 attenuation mask by construction, so they are labelled By design - this is expected, not a failure or regression. Frequency-weighting conformance (A/C: IEC 61672-1 Table 3; G: ISO 7196 A.3). The max deviation from nominal is informational (it falls at a frequency extreme where the tolerance is widest and asymmetric); compliance is judged at the binding frequency - the one with the least headroom - where the deviation, the applicable tolerance band and the headroom are shown together.
✅ Filters & weightings: 100% (10/10)
✅ Levels & dosimetry: 100% (6/6)
✅ Room acoustics: 100% (12/12)
✅ Psychoacoustics: 100% (12/12)
✅ Speech transmission (IEC 60268-16): 100% (10/10)
✅ System measurement (Golay / Kirkeby / Mueller-Massarani): 100% (5/5)
✅ Intensity & sound power: 100% (6/6)
✅ Room & building acoustics: 100% (52/52)
✅ Building prediction & uncertainty: 100% (15/15)
✅ Outdoor propagation & occupational exposure: 100% (10/10)
✅ Materials: absorption, airflow & impedance: 100% (6/6)
✅ Scattering & diffusion (ISO 17497): 100% (14/14)
✅ In-situ road absorption (ISO 13472): 100% (3/3)
✅ Precision sound power (ISO 3745 / 9614-3): 100% (4/4)
✅ Human vibration (ISO 8041 / 2631 / 5349): 100% (15/15)
✅ Speech intelligibility (ANSI S3.5-1997): 100% (7/7)
✅ Objective intelligibility (STOI / ESTOI): 100% (3/3)
✅ Impulsive-sound prominence (NT ACOU 112): 100% (2/2)
✅ Impulsive-sound prominence (ISO/PAS 1996-3): 100% (2/2)
✅ Room noise (ANSI S12.2-2019): 100% (3/3)
✅ Hearing threshold (ISO 7029 / ISO 389-7): 100% (3/3)
✅ Measurement uncertainty (GUM / Supplement 1): 100% (7/7)
✅ Noise-induced hearing loss (ISO 1999): 100% (6/6)
✅ Multiple-shock whole-body vibration (ISO 2631-5): 100% (6/6)
✅ Sound absorption in enclosed spaces (EN 12354-6): 100% (2/2)
✅ Prominent discrete tones (ECMA-418-1): 100% (2/2)
✅ Tonal audibility (ISO/PAS 20065): 100% (11/11)
✅ Psychoacoustic annoyance & fluctuation strength (Fastl & Zwicker): 100% (3/3)
✅ Electroacoustics: distortion & frequency response: 100% (20/20)
✅ Calibrated spectral analysis (Bendat & Piersol): 100% (12/12)
✅ Multiple-input coherence (Bendat & Piersol): 100% (5/5)
✅ Time-frequency analysis (Bendat & Piersol): 100% (3/3)
✅ Correlation, time delay and envelope (B&P / Knapp & Carter): 100% (7/7)
✅ Cepstrum, liftering and envelope spectrum (Havelock / B&P): 100% (3/3)
✅ Time synchronous averaging (McFadden 1987): 100% (5/5)
✅ Data qualification and Rice statistics (Bendat & Piersol): 100% (8/8)
✅ Underwater acoustics (ISO 18405/17208/18406): 100% (6/6)
✅ Underwater sound propagation (transmission loss): 100% (15/15)
✅ Underwater numerical propagation (modes / rays / PE): 100% (4/4)
✅ Aircraft noise (ICAO Annex 16 / IEC 61265): 100% (15/15)
✅ Rotorcraft noise (ECAC Doc 32 / NORAH2): 100% (12/12)
✅ Wind-turbine noise (IEC 61400-11): 100% (3/3)
✅ Porous & multilayer absorbers (Mechel / Bies / Cox & D'Antonio): 100% (10/10)
✅ Slow-sound perfect absorbers (Jimenez et al. Appl. Sci. 2017): 100% (3/3)
✅ Program loudness (ITU-R BS.1770 / EBU R 128): 100% (8/8)
✅ 2D FDTD wave simulation (Attenborough & Van Renterghem 2021, Ch. 4): 100% (2/2)
✅ Swept-sine distortion & phase utilities (Farina / Novak): 100% (7/7)
✅ Spherical ground & barriers (Attenborough / Salomons / Bies): 100% (7/7)
✅ Panel & aperture sound insulation (Bies / Hopkins / Cremer): 100% (11/11)
✅ Bending-wave plate-junction transmission (Cremer / Craik / Hopkins): 100% (6/6)
✅ Atmospheric refraction (Salomons rays / GFPE): 100% (3/3)
✅ Electroacoustics: 100% (6/6)
✅ Industrial noise control: 100% (9/9)
Tests & coverage — 33552 tests, 0 failures (✅ all green)
Conformance harness: |
|



Follow-up to #377. Discussions now has its forms and its routing; this gives Issues the same, and makes labels something that actually gets applied.
Issue forms
.github/ISSUE_TEMPLATE/, scoped so the routing in CONTRIBUTING holds rather than being restated and contradicted:docs/ERRATA.mdentry.Labels applied from paths
None of the last 15 pull requests carried a label, so a scheme that needs manual application would not have changed anything.
.github/labeler.ymlderives them from the changed paths instead:documentation,site,i18n,figures,reports,conformance,errata,validation,api,packaging,ci.area:label per package undersrc/phonometry/.tests/mirrors those names, so an implementation and its tests land on the same label.sync-labelsis off, so labels added by hand are never removed. The workflow runs onpull_request_targetbecause the default token is read-only for fork pull requests underpull_request; the action only reads the changed file list and never checks out or runs the pull request's code.The 26 new labels are already created in the repository. Every label referenced by a form or by the labeler was checked to exist, and every glob was checked to match at least one real path.
Summary by Sourcery
Introduce structured issue templates and automatic path-based labelling for pull requests.
CI:
Documentation: