Joss submission prep - #4
Merged
Merged
Conversation
Add the JOSS paper and supporting infrastructure, and clean up repo structure so reviewers can assess shroom as substantial standalone work. - paper/paper.md + paper/paper.bib: JOSS paper (Summary, Statement of Need), condensed from the arXiv preprint, cites it for full evaluation - .github/workflows/ci.yml: pytest on Python 3.9-3.13 - .github/workflows/draft-pdf.yml: JOSS paper draft-PDF build - CONTRIBUTING.md + issue templates + README support section (JOSS community guidelines: contribute / report / support) - Remove stale, unused spaudiopy git submodule; drop unused from_spaudiopy_grid imports from examples - Rename projects/ -> benchmarks/ with intentional names and a README, reframed as encoder-convergence validation experiments - Sharpen shroom_dev framing (optional companion, not core-required) - Metadata: CITATION.cff 0.1.1 -> 0.2.0 + ORCID/affiliation, author email, LICENSE year, CI/license badges, flat `from shroom import ...` imports in README quick-start - Add class-level docstring to Room Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The ARIA array SOFA file is not distributed with the repo (data/ is gitignored), so test_aria_asm_bsm.py's fixtures errored on a fresh clone and in CI. Skip the whole module when the file is absent, matching the existing pattern in test_hrtf.py / test_sofa.py. Port the array-agnostic ASM DC/Nyquist reality constraints to test_asm.py using the existing synthetic SphericalArray fixture, so those properties still run in CI (the BSM properties and ProcessorChain equivalence are already covered synthetically in test_bsm.py / test_processors.py). Also drop the stale `sys.path.insert(..., "projects")` (now benchmarks/) and the unused `sys` import. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Lines 529-768 of test_spatial_signal_comprehensive.py were commented out, disabling all tests for convolve_sh, rotate_space_domain, rotate_sh_domain, and the duration/n_samples/n_channels properties. They pass as-is (verified) and were the *only* coverage for SpatialSignal.rotate_sh_domain, which is featured in the README/paper. Re-enabling restores 275 test cases (file: 76 -> 351; suite: 385 -> 462), and makes the module docstring's "covers every public method" claim true. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Delete test_array.py: its two tests were identical-named duplicates of test_spherical_array.py's init/shape tests. - Delete test_spatial_signal.py: resample/rotate_space_domain/convolve_sh are now fully covered by the (re-enabled) comprehensive suite. - Add tests/conftest.py with make_equator_grid and make_spherical_array factory fixtures, and refactor test_spherical_array.py, test_asm.py, and test_processors.py to use them instead of duplicating array construction. - Drop the leftover unused from_spaudiopy_grid import in test_processors.py. No coverage lost: suite goes 462 -> 457 (exactly the 5 duplicate tests). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Add pytest-cov to the [dev] extra. - Configure [tool.coverage] in pyproject.toml (source=shroom, omit shroom_dev, show missing lines). - Run coverage in CI (--cov=shroom --cov-report=term-missing). - Ignore coverage artifacts. Baseline: 79% overall; core science (encoders, physics, rotation, spatial_signal) 89-100%; low spots are plotting in room.py and some utils/IO helpers. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add test_amb_utils.py (real/complex sh_matrix shape, dtype, DC constant, quadrature orthonormality; get_tilde_matrix involution and signs) and test_io_utils.py (load_file/load_wav int16/int32/uint8 + unsupported format, get_default_hrtf_path both branches, convert_sofa_to_radians spherical/cartesian/wrapping, is_time/is_sofa_time detection + errors). Coverage: file_utils 74->100%, paths 67->100%, amb_utils 58->84%, sofa 68->85%; overall 79% -> 81%. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The scratch folder holding the arXiv preprint LaTeX source has been removed; its content was extracted into paper/paper.md and paper/paper.bib. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Rename all paper.bib keys to the author+year+venue scheme used in the reference library (e.g. allen1979JASA, rafaely2015SphArray, schorkhuber2018DAGA, magariyachi2020JASA, ...). - Tag the array-aware MagLS HRTF algorithm with gayer2026TASLP (IEEE TASLP 2026) and cite it in the statement of need. - Tag ASM encoding with gayer2024ICASSPW. - Update every \cite key in paper.md to match; verified all 15 cited keys resolve to defined entries with no leftovers. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Several comments were notes-to-self / conversational rather than
documentation for repo users ("But wait", "Let's assume", "your format",
"we are in trouble", "for now", "...?"). Rewrote them as concise
explanations of the actual behaviour, across:
src: amb_utils, dsp_utils, sofa, room, math_utils (also drop a
commented-out line and mark the untestable scipy fallback
with `# pragma: no cover`)
tests: test_processors, test_asm, test_sampling
No behaviour change; suite still 488 passed.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Patch release (no functional/API change): packages the JOSS paper, CI + coverage, community docs, expanded tests, benchmarks/ rename, and submodule removal. Update pyproject.toml, CITATION.cff (version + date-released), and add a README changelog entry. Co-Authored-By: Claude Opus 4.8 <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.
No description provided.