Skip to content

Refactor and update Soundscape Analysis documentation structure#141

Merged
MitchellAcoustics merged 43 commits into
mainfrom
dev
May 10, 2026
Merged

Refactor and update Soundscape Analysis documentation structure#141
MitchellAcoustics merged 43 commits into
mainfrom
dev

Conversation

@MitchellAcoustics
Copy link
Copy Markdown
Owner

This pull request delivers a major overhaul of the documentation for the Soundscapy project, focusing on improved structure, clarity, and user onboarding. It introduces a new "About Soundscape Analysis" background page, significantly reorganizes the documentation for easier navigation, updates installation and API instructions, and refines the changelog. Additionally, minor updates are made to workflow files and project metadata.

Documentation overhaul and structure:

  • Adds a comprehensive "About Soundscape Analysis" page explaining core concepts such as the ISO 12913 standard, PAQ attributes, the circumplex model, and the importance of distributional analysis.
  • Reorganizes documentation files: updates the homepage (index.md) with clearer installation instructions, capability tiers, and a new "Where to start" section; improves the tutorials index with a guided starting table; and restructures the API reference for clarity and easier navigation. [1] [2] [3]
  • Updates and clarifies navigation, links, and project license references throughout the documentation, including fixing outdated URLs and removing obsolete sections. [1] [2] [3]

Changelog and news:

  • Expands the CHANGELOG.md with detailed entries for the documentation overhaul and recent refactoring, and removes outdated news sections from the documentation. [1] [2]

Project configuration and workflow updates:

  • Adds a .github/FUNDING.yml file to enable GitHub Sponsors and other funding platforms.
  • Updates GitHub Actions workflow files to improve reproducibility and dependency management, including setting frozen: true for Pixi environments and adjusting job dependencies. [1] [2] [3]
  • Adds an exclude rule in .pre-commit-config.yaml to prevent formatting of generated environment.yml files.

Minor README updates:

  • Removes the ReadTheDocs badge and updates the migration guide link to point to the new documentation site. [1] [2]

MitchellAcoustics and others added 30 commits May 10, 2026 18:07
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pixi controls the format of environment.yml; reformatting it breaks
the file. Global exclude covers prettier, trailing-whitespace, and
all other hooks cleanly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
publish-pypi now waits for publish-conda so a conda failure can't
leave us with a duplicate PyPI upload on retry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Removed documentation badge from README.
- Remove EmbeddedRPackage proxy (bypassed by its own module)
- Remove _state.session and _state.circe fields; add circe_sourced: bool
- Flatten check_dependencies() — remove redundant nested check_r_availability()
  calls inside check_sn_package() and check_circe_package()
- Remove _confirm_install_r_packages() and all TTY/env-var auto-install
  logic; ImportError with clear instructions instead
- initialize_r_session() returns None (no caller used the dict return)
- Remove is_session_active() thin wrapper
- Fix double-check in install_r_packages()
- Extract _np2rmat() in _rsn_wrapper, replacing 3x duplicated R matrix boilerplate
- Batch-draw in sample_mtsn (max(n,64) per R call) instead of n=1 per candidate
- Update tests to assert on _state.active / _state.circe_sourced directly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove remaining scaffolding and collapse the CircE two-step API:

- Drop importlib.metadata and NoReturn imports (both now dead)
- Remove _state.stats — loaded but never accessed by any wrapper
- Remove is_ready property — active=True is set atomically after all
  packages load, so the check in get_r_session() can never trigger
- Inline the _raise_*_error inner closures in all three check functions;
  raises directly in except blocks, removing ~20 lines of define-then-call
  scaffolding with no diagnostic benefit
- Simplify check_circe_package(): drop redundant _get_circe_embedded_paths()
  call and outer try/except — _source_embedded_circe_scripts() already
  converts every exception to ImportError internally
- Merge bfgs() + extract_bfgs_fit() into bfgs_fit() returning dict[str, Any];
  the ro.ListVector intermediate never left the call chain and is now gone
- Update circe.py: compute_bfgs_fit() calls bfgs_fit(), from_bfgs() accepts
  fit_stats: dict instead of a raw R ListVector
- Update tests: TestBfgsWrapper uses bfgs_fit() directly; drop the test that
  asserted on the internal ro.ListVector type

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Move CircE and skew-normal wrapper functions into `_r_wrapper`,
remove the old split modules, and update imports and tests to use
the unified internal API.
Removed separate CircE wrapper and skew-normal wrapper sections — all
three are now documented from the single _r_wrapper module.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI and others added 13 commits May 10, 2026 22:16
…tVector input

Agent-Logs-Url: https://github.com/MitchellAcoustics/Soundscapy/sessions/9e7d4c44-7307-4f40-b931-578e0ab982a4

Co-authored-by: MitchellAcoustics <22335636+MitchellAcoustics@users.noreply.github.com>
…from_bfgs()

Agent-Logs-Url: https://github.com/MitchellAcoustics/Soundscapy/sessions/9e7d4c44-7307-4f40-b931-578e0ab982a4

Co-authored-by: MitchellAcoustics <22335636+MitchellAcoustics@users.noreply.github.com>
…t_bfgs_stats()

Agent-Logs-Url: https://github.com/MitchellAcoustics/Soundscapy/sessions/9e7d4c44-7307-4f40-b931-578e0ab982a4

Co-authored-by: MitchellAcoustics <22335636+MitchellAcoustics@users.noreply.github.com>
…plification

refactor(r_wrapper): consolidate internal R wrapper into single module
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MitchellAcoustics/Soundscapy/sessions/375278d7-1cef-4efd-b0d9-92eb3ae33348

Co-authored-by: MitchellAcoustics <22335636+MitchellAcoustics@users.noreply.github.com>
Refactor and update Soundscape Analysis documentation structure
- Version 0.8.4.dev1 → 0.8.4
- Root CHANGELOG: add 0.8.3 patch entry and full 0.8.4 release notes
  (docs overhaul, r_wrapper refactor, CI/CD fixes)
- docs/CHANGELOG: stamp [Unreleased] → 0.8.4

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@MitchellAcoustics MitchellAcoustics marked this pull request as ready for review May 10, 2026 23:58
@MitchellAcoustics MitchellAcoustics merged commit 2b1a284 into main May 10, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants