Skip to content

CI: Add macOS and Windows to test matrix#39

Closed
jmrplens wants to merge 5 commits intomainfrom
ci/cross-platform-tests
Closed

CI: Add macOS and Windows to test matrix#39
jmrplens wants to merge 5 commits intomainfrom
ci/cross-platform-tests

Conversation

@jmrplens
Copy link
Owner

@jmrplens jmrplens commented Jan 12, 2026

User description

This PR updates the CI workflow to include macOS and Windows in the test matrix.
It also changes the installation method from editable (-e .) to standard (.) to verify proper package installation.

This will help diagnose potential issues on macOS and ensure cross-platform compatibility.


PR Type

Enhancement


Description

  • Expand test matrix to include macOS and Windows platforms

  • Change package installation from editable to standard mode

  • Add fail-fast: false to allow all matrix combinations to run

  • Update artifact naming to include OS in test result filenames


Diagram Walkthrough

flowchart LR
  A["Test Job Configuration"] -->|"Add OS matrix"| B["ubuntu-latest, macos-latest, windows-latest"]
  A -->|"Change install method"| C["pip install . instead of -e ."]
  A -->|"Update artifact names"| D["Include OS in test result filenames"]
  B --> E["Cross-platform testing"]
  C --> F["Verify proper package installation"]
  D --> G["Distinguish results by platform"]
Loading

File Walkthrough

Relevant files
Configuration changes
python-app.yml
Expand CI to multi-platform testing with standard installation

.github/workflows/python-app.yml

  • Added OS matrix variable with ubuntu-latest, macos-latest, and
    windows-latest
  • Changed runs-on from hardcoded ubuntu-latest to use matrix.os variable
  • Added fail-fast: false to strategy to allow all matrix combinations to
    complete
  • Changed pip install from editable mode (-e .) to standard mode (.)
  • Updated test result artifact names to include matrix.os for platform
    differentiation
  • Updated SonarCloud artifact download to use ubuntu-latest-3.13 instead
    of 3.13
+8/-6     

Summary by CodeRabbit

  • Tests

    • Expanded test coverage to run across multiple operating systems (Windows, macOS, and Ubuntu).
    • Improved test reliability by allowing test suites to complete across all platforms.
  • Chores

    • Enhanced test result organization with platform and version details.

✏️ Tip: You can customize this high-level summary in your review settings.

@gemini-code-assist
Copy link

Note

Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported.

@sourcery-ai
Copy link

sourcery-ai bot commented Jan 12, 2026

Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Extends the CI test job to run across Ubuntu, macOS, and Windows, switches package installation from editable to standard installs, and updates test artifact naming and Sonar coverage download to incorporate the OS dimension.

Flow diagram for updated CI tests job per matrix entry

flowchart TD
  A["Start tests job (for one matrix.os and matrix.python-version)"] --> B["Checkout repo (actions/checkout@v4)"]
  B --> C["Setup Python (actions/setup-python@v5)
version = matrix.python-version"]
  C --> D["Upgrade pip"]
  D --> E["Install dependencies
pip install -r requirements.txt
pip install -r requirements-dev.txt"]
  E --> F["Install package
pip install ."]
  F --> G["Run pytest
--junitxml=test-results-${{ matrix.os }}-${{ matrix.python-version }}.xml
--cov=src --cov-report=xml
NUMBA_DISABLE_JIT=1"]
  G --> H["Upload artifacts (actions/upload-artifact@v4)
name: test-results-${{ matrix.os }}-${{ matrix.python-version }}
files: JUnit XML + coverage.xml"]
  H --> I["Job end (for this OS/Python combination)"]
Loading

File-Level Changes

Change Details Files
Expand test job to a cross-platform matrix and disable fail-fast for better diagnostics.
  • Change tests job runner to use matrix.os instead of a fixed ubuntu-latest runner
  • Introduce matrix.os with ubuntu, macOS, and Windows entries
  • Set strategy.fail-fast to false so one platform failure does not cancel others
.github/workflows/python-app.yml
Adjust Python package installation to use a standard install instead of editable mode in CI.
  • Replace pip install -e . with pip install . in the test job setup step to validate installed package behavior
.github/workflows/python-app.yml
Update test result and artifact naming to include OS dimension and align Sonar coverage download with the new naming convention.
  • Include matrix.os in the JUnit XML filename for pytest results
  • Include matrix.os in the artifact name and referenced path for uploaded test results
  • Update Sonar coverage job to download the Ubuntu 3.13 artifact using the new OS-inclusive name
.github/workflows/python-app.yml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai
Copy link

coderabbitai bot commented Jan 12, 2026

Warning

Rate limit exceeded

@jmrplens has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 7 minutes and 59 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 6048ef9 and dc5a92f.

📒 Files selected for processing (2)
  • .github/workflows/manual_verify_install.yml
  • .github/workflows/python-app.yml
📝 Walkthrough

Walkthrough

The GitHub Actions workflow now runs tests across multiple operating systems (Ubuntu, macOS, Windows) using a matrix strategy. Dependency installation method changed from editable to standard mode, and artifact naming was updated to include the OS variant for better result tracking across platforms.

Changes

Cohort / File(s) Change Summary
CI/CD workflow configuration
.github/workflows/python-app.yml
Added OS matrix strategy (ubuntu-latest, macos-latest, windows-latest) to tests job with fail-fast: false. Updated runs-on to use ${{ matrix.os }}. Changed pip install from -e . to .. Updated test result artifact names to include OS and Python version: test-results-${{ matrix.os }}-${{ matrix.python-version }}.xml. Updated download artifact reference to test-results-ubuntu-latest-3.13 for Sonar/Triage phase.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 Cross-platform hops we now pursue,
Ubuntu, Mac, and Windows too!
No editable installs today,
Just artifacts in the proper way,
Our tests dance on every stage! 🎭

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'CI: Add macOS and Windows to test matrix' accurately and concisely summarizes the main change—expanding the CI test matrix to include multiple operating systems.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ci/cross-platform-tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@qodo-code-review
Copy link

qodo-code-review bot commented Jan 12, 2026

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 2 issues, and left some high level feedback:

  • The SonarCloud job still downloads only the test-results-ubuntu-latest-3.13 artifact; if coverage from other OS/Python combinations is intended to be included, consider aggregating or clarifying why only that one is used.
  • Switching from pip install -e . to pip install . changes the build/installation path (e.g., requiring a wheel build); if editable installs are still needed for local dev, you might want to keep them in a separate job or document the distinction in the workflow.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The SonarCloud job still downloads only the `test-results-ubuntu-latest-3.13` artifact; if coverage from other OS/Python combinations is intended to be included, consider aggregating or clarifying why only that one is used.
- Switching from `pip install -e .` to `pip install .` changes the build/installation path (e.g., requiring a wheel build); if editable installs are still needed for local dev, you might want to keep them in a separate job or document the distinction in the workflow.

## Individual Comments

### Comment 1
<location> `.github/workflows/python-app.yml:65-72` </location>
<code_context>
         NUMBA_DISABLE_JIT: 1
       run: |
-        pytest --junitxml=test-results-${{ matrix.python-version }}.xml --cov=src --cov-report=xml
+        pytest --junitxml=test-results-${{ matrix.os }}-${{ matrix.python-version }}.xml --cov=src --cov-report=xml
     - name: Upload Test Results
       uses: actions/upload-artifact@v4
       with:
-        name: test-results-${{ matrix.python-version }}
+        name: test-results-${{ matrix.os }}-${{ matrix.python-version }}
         path: |
-          test-results-${{ matrix.python-version }}.xml
</code_context>

<issue_to_address>
**suggestion (testing):** Consider aligning coverage artifact usage with the Sonar coverage job to avoid producing unused coverage artifacts for non-ubuntu runners.

With the new matrix, every (os, python-version) now uploads JUnit + `coverage.xml`, but the coverage job still only downloads `test-results-ubuntu-latest-3.13`. So coverage from other environments is never used. Either stop uploading `coverage.xml` for non-`ubuntu-latest`/3.13 runs, or update the coverage job to intentionally aggregate coverage from multiple artifacts.

```suggestion
    - name: Upload Test Results
      uses: actions/upload-artifact@v4
      with:
        name: test-results-${{ matrix.os }}-${{ matrix.python-version }}
        path: |
          test-results-${{ matrix.os }}-${{ matrix.python-version }}.xml
      if: always()

    - name: Upload Coverage Report (ubuntu-latest, Python 3.13 only)
      uses: actions/upload-artifact@v4
      with:
        name: test-results-${{ matrix.os }}-${{ matrix.python-version }}
        path: |
          coverage.xml
      if: always() && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'
```
</issue_to_address>

### Comment 2
<location> `.github/workflows/python-app.yml:56-58` </location>
<code_context>
         python -m pip install --upgrade pip
         pip install -r requirements.txt
         pip install -r requirements-dev.txt
-        pip install -e .
+        pip install .
</code_context>

<issue_to_address>
**suggestion (bug_risk):** Use `python -m pip` consistently instead of bare `pip` for better cross-platform reliability, especially now that Windows is in the matrix.

On Windows runners, `pip` may not point to the same interpreter configured by `setup-python`, depending on PATH and installation details. Using `python -m pip install ...` in these steps will ensure the packages are installed with the intended Python across all OSes in the matrix.

Suggested implementation:

```
        python -m pip install -r requirements.txt

```

```
        python -m pip install -r requirements-dev.txt

```

```
        python -m pip install .

```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment on lines 65 to 72
- name: Upload Test Results
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.python-version }}
name: test-results-${{ matrix.os }}-${{ matrix.python-version }}
path: |
test-results-${{ matrix.python-version }}.xml
test-results-${{ matrix.os }}-${{ matrix.python-version }}.xml
coverage.xml
if: always()
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (testing): Consider aligning coverage artifact usage with the Sonar coverage job to avoid producing unused coverage artifacts for non-ubuntu runners.

With the new matrix, every (os, python-version) now uploads JUnit + coverage.xml, but the coverage job still only downloads test-results-ubuntu-latest-3.13. So coverage from other environments is never used. Either stop uploading coverage.xml for non-ubuntu-latest/3.13 runs, or update the coverage job to intentionally aggregate coverage from multiple artifacts.

Suggested change
- name: Upload Test Results
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.python-version }}
name: test-results-${{ matrix.os }}-${{ matrix.python-version }}
path: |
test-results-${{ matrix.python-version }}.xml
test-results-${{ matrix.os }}-${{ matrix.python-version }}.xml
coverage.xml
if: always()
- name: Upload Test Results
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.os }}-${{ matrix.python-version }}
path: |
test-results-${{ matrix.os }}-${{ matrix.python-version }}.xml
if: always()
- name: Upload Coverage Report (ubuntu-latest, Python 3.13 only)
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.os }}-${{ matrix.python-version }}
path: |
coverage.xml
if: always() && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'

Comment on lines 56 to 58
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -r requirements-dev.txt
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (bug_risk): Use python -m pip consistently instead of bare pip for better cross-platform reliability, especially now that Windows is in the matrix.

On Windows runners, pip may not point to the same interpreter configured by setup-python, depending on PATH and installation details. Using python -m pip install ... in these steps will ensure the packages are installed with the intended Python across all OSes in the matrix.

Suggested implementation:

        python -m pip install -r requirements.txt

        python -m pip install -r requirements-dev.txt

        python -m pip install .

@qodo-code-review
Copy link

qodo-code-review bot commented Jan 12, 2026

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Ensure SonarCloud analysis runs always

Add if: always() to the sonar job's conditional to ensure it runs even if the
preceding tests job fails.

.github/workflows/python-app.yml [82-85]

-- name: Download coverage report
-  uses: actions/download-artifact@v4
-  with:
-    name: test-results-ubuntu-latest-3.13
+sonar:
+  needs: tests
+  runs-on: ubuntu-latest
+  if: always() && (github.event_name == 'pull_request' || github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main')
+  steps:
+  - uses: actions/checkout@v4
+    with:
+      fetch-depth: 0
+  - name: Download coverage report
+    uses: actions/download-artifact@v4
+    with:
+      name: test-results-ubuntu-latest-3.13

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 7

__

Why: The suggestion correctly identifies that the sonar job could be skipped if the tests job fails, and proposes a valid fix to ensure the analysis always runs, improving the CI pipeline's robustness.

Medium
  • Update

@github-actions
Copy link
Contributor

CI Results 🚀

Test Summary

Python Version Tests Failures Coverage Status
macos-latest-3.11 75 0 0.0% ✅ Passed
macos-latest-3.12 75 0 0.0% ✅ Passed
macos-latest-3.13 75 0 0.0% ✅ Passed
ubuntu-latest-3.11 75 0 0.0% ✅ Passed
ubuntu-latest-3.12 75 0 0.0% ✅ Passed
ubuntu-latest-3.13 75 0 0.0% ✅ Passed
windows-latest-3.11 75 0 0.0% ✅ Passed
windows-latest-3.12 75 0 0.0% ✅ Passed
windows-latest-3.13 75 0 0.0% ✅ Passed

Technical Benchmark Summary

📊 View Benchmark Details

PyOctaveBand: Technical Benchmark Report

Generated: 2026-01-12 16:42:21

1. Test Signal Parameters

  • Sample Rate: 96.0 kHz
  • Duration: 10.0 seconds
  • Signal Types: White Noise (Stability) / Pure Sine (Precision)
  • Precision: 64-bit Floating Point

2. Crossover (Linkwitz-Riley)

Crossover

  • Flatness Error: 0.000000 dB (Target < 0.01)

3. Precision & Isolation

Precision

Type Error (dB) Isolation Ripple GD Std (ms)
butter 2.46e-03 31.3 dB 0.2705 dB 2847.826
cheby1 3.38e-03 40.5 dB 0.1000 dB 3551.677
cheby2 3.26e-03 57.8 dB 29.4187 dB 4790.013
ellip 9.41e-03 54.2 dB 0.1000 dB 4700.881
bessel 5.20e-01 32.5 dB 5.9845 dB 1380.212

4. Performance

Performance

Channels Exec Time (s) Speedup
1 0.637 1.00x
2 1.250 1.02x
4 2.468 1.03x
8 4.901 1.04x
16 9.822 1.04x

View Full Artifacts

@github-actions
Copy link
Contributor

CI Results 🚀

Test Summary

Python Version Tests Failures Coverage Status
macos-latest-3.11 75 0 0.0% ✅ Passed
macos-latest-3.12 75 0 0.0% ✅ Passed
macos-latest-3.13 75 0 0.0% ✅ Passed
ubuntu-latest-3.11 75 0 0.0% ✅ Passed
ubuntu-latest-3.12 75 0 0.0% ✅ Passed
ubuntu-latest-3.13 75 0 0.0% ✅ Passed
windows-latest-3.11 75 0 0.0% ✅ Passed
windows-latest-3.12 75 0 0.0% ✅ Passed
windows-latest-3.13 75 0 0.0% ✅ Passed

Technical Benchmark Summary

📊 View Benchmark Details

PyOctaveBand: Technical Benchmark Report

Generated: 2026-01-12 16:46:46

1. Test Signal Parameters

  • Sample Rate: 96.0 kHz
  • Duration: 10.0 seconds
  • Signal Types: White Noise (Stability) / Pure Sine (Precision)
  • Precision: 64-bit Floating Point

2. Crossover (Linkwitz-Riley)

Crossover

  • Flatness Error: 0.000000 dB (Target < 0.01)

3. Precision & Isolation

Precision

Type Error (dB) Isolation Ripple GD Std (ms)
butter 2.46e-03 31.3 dB 0.2705 dB 2847.826
cheby1 3.38e-03 40.5 dB 0.1000 dB 3551.677
cheby2 3.26e-03 57.8 dB 29.4187 dB 4790.013
ellip 9.41e-03 54.2 dB 0.1000 dB 4700.881
bessel 5.20e-01 32.5 dB 5.9845 dB 1380.212

4. Performance

Performance

Channels Exec Time (s) Speedup
1 0.626 1.00x
2 1.229 1.02x
4 2.444 1.02x
8 4.854 1.03x
16 9.769 1.02x

View Full Artifacts

Comment on lines +13 to +35
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.13"]
steps:
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install PyOctaveBand
run: |
python -m pip install --upgrade pip
if [ -z "${{ inputs.version }}" ]; then
pip install pyoctaveband
else
pip install pyoctaveband==${{ inputs.version }}
fi
shell: bash

- name: Verify Import
run: python -c "import pyoctaveband; print('Successfully imported pyoctaveband version:', pyoctaveband.__version__)"

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}

Copilot Autofix

AI about 2 months ago

In general, fix this by explicitly specifying a permissions block, either at the workflow root (applies to all jobs) or at the individual job level, granting only what is necessary. For this workflow, the job only installs and imports a Python package and does not require write access to repository contents, issues, or pull requests, so contents: read is a safe minimal scope. If even repository contents are not needed, this is still the standard minimum GitHub recommends for most workflows.

The single best fix with minimal behavior change is to add a workflow-level permissions block after the name: declaration and before on: in .github/workflows/manual_verify_install.yml, setting contents: read. This will apply to the verify-pypi-install job without altering any steps or behavior; it only restricts the default GITHUB_TOKEN scope. No new imports, actions, or steps are required.

Concretely:

  • Edit .github/workflows/manual_verify_install.yml.

  • Insert:

    permissions:
      contents: read

    after line 1 (name: Manual Verify Installation) and before the on: block.

  • No other files or lines need to change.

Suggested changeset 1
.github/workflows/manual_verify_install.yml

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/.github/workflows/manual_verify_install.yml b/.github/workflows/manual_verify_install.yml
--- a/.github/workflows/manual_verify_install.yml
+++ b/.github/workflows/manual_verify_install.yml
@@ -1,5 +1,8 @@
 name: Manual Verify Installation
 
+permissions:
+  contents: read
+
 on:
   workflow_dispatch:
     inputs:
EOF
@@ -1,5 +1,8 @@
name: Manual Verify Installation

permissions:
contents: read

on:
workflow_dispatch:
inputs:
Copilot is powered by AI and may make mistakes. Always verify output.
Unable to commit as this autofix suggestion is now outdated
@github-actions
Copy link
Contributor

CI Results 🚀

Test Summary

Python Version Tests Failures Coverage Status
macos-latest-3.11 75 0 0.0% ✅ Passed
macos-latest-3.12 75 0 0.0% ✅ Passed
macos-latest-3.13 75 0 0.0% ✅ Passed
ubuntu-latest-3.11 75 0 0.0% ✅ Passed
ubuntu-latest-3.12 75 0 0.0% ✅ Passed
ubuntu-latest-3.13 75 0 0.0% ✅ Passed
windows-latest-3.11 75 0 0.0% ✅ Passed
windows-latest-3.12 75 0 0.0% ✅ Passed
windows-latest-3.13 75 0 0.0% ✅ Passed

Technical Benchmark Summary

📊 View Benchmark Details

PyOctaveBand: Technical Benchmark Report

Generated: 2026-01-12 16:51:40

1. Test Signal Parameters

  • Sample Rate: 96.0 kHz
  • Duration: 10.0 seconds
  • Signal Types: White Noise (Stability) / Pure Sine (Precision)
  • Precision: 64-bit Floating Point

2. Crossover (Linkwitz-Riley)

Crossover

  • Flatness Error: 0.000000 dB (Target < 0.01)

3. Precision & Isolation

Precision

Type Error (dB) Isolation Ripple GD Std (ms)
butter 2.46e-03 31.3 dB 0.2705 dB 2847.826
cheby1 3.38e-03 40.5 dB 0.1000 dB 3551.677
cheby2 3.26e-03 57.8 dB 29.4187 dB 4790.013
ellip 9.41e-03 54.2 dB 0.1000 dB 4700.881
bessel 5.20e-01 32.5 dB 5.9845 dB 1380.212

4. Performance

Performance

Channels Exec Time (s) Speedup
1 0.631 1.00x
2 1.239 1.02x
4 2.457 1.03x
8 4.871 1.04x
16 9.764 1.03x

View Full Artifacts

@sonarqubecloud
Copy link

Please retry analysis of this Pull-Request directly on SonarQube Cloud

@sonarqubecloud
Copy link

@github-actions
Copy link
Contributor

CI Results 🚀

Test Summary

Python Version Tests Failures Coverage Status
macos-latest-3.13 75 0 0.0% ✅ Passed
ubuntu-latest-3.13 75 0 0.0% ✅ Passed
windows-latest-3.13 75 0 0.0% ✅ Passed

Technical Benchmark Summary

📊 View Benchmark Details

PyOctaveBand: Technical Benchmark Report

Generated: 2026-01-12 16:52:47

1. Test Signal Parameters

  • Sample Rate: 96.0 kHz
  • Duration: 10.0 seconds
  • Signal Types: White Noise (Stability) / Pure Sine (Precision)
  • Precision: 64-bit Floating Point

2. Crossover (Linkwitz-Riley)

Crossover

  • Flatness Error: 0.000000 dB (Target < 0.01)

3. Precision & Isolation

Precision

Type Error (dB) Isolation Ripple GD Std (ms)
butter 2.46e-03 31.3 dB 0.2705 dB 2847.826
cheby1 3.38e-03 40.5 dB 0.1000 dB 3551.677
cheby2 3.26e-03 57.8 dB 29.4187 dB 4790.013
ellip 9.41e-03 54.2 dB 0.1000 dB 4700.881
bessel 5.20e-01 32.5 dB 5.9845 dB 1380.212

4. Performance

Performance

Channels Exec Time (s) Speedup
1 0.626 1.00x
2 1.227 1.02x
4 2.440 1.03x
8 4.852 1.03x
16 9.746 1.03x

View Full Artifacts

@github-actions
Copy link
Contributor

CI Results 🚀

Test Summary

Python Version Tests Failures Coverage Status
macos-latest-3.11 75 0 0.0% ✅ Passed
macos-latest-3.12 75 0 0.0% ✅ Passed
macos-latest-3.13 75 0 0.0% ✅ Passed
ubuntu-latest-3.11 75 0 0.0% ✅ Passed
ubuntu-latest-3.12 75 0 0.0% ✅ Passed
ubuntu-latest-3.13 75 0 0.0% ✅ Passed
windows-latest-3.11 75 0 0.0% ✅ Passed
windows-latest-3.12 75 0 0.0% ✅ Passed
windows-latest-3.13 75 0 0.0% ✅ Passed

Technical Benchmark Summary

📊 View Benchmark Details

PyOctaveBand: Technical Benchmark Report

Generated: 2026-01-12 16:52:47

1. Test Signal Parameters

  • Sample Rate: 96.0 kHz
  • Duration: 10.0 seconds
  • Signal Types: White Noise (Stability) / Pure Sine (Precision)
  • Precision: 64-bit Floating Point

2. Crossover (Linkwitz-Riley)

Crossover

  • Flatness Error: 0.000000 dB (Target < 0.01)

3. Precision & Isolation

Precision

Type Error (dB) Isolation Ripple GD Std (ms)
butter 2.46e-03 31.3 dB 0.2705 dB 2847.826
cheby1 3.38e-03 40.5 dB 0.1000 dB 3551.677
cheby2 3.26e-03 57.8 dB 29.4187 dB 4790.013
ellip 9.41e-03 54.2 dB 0.1000 dB 4700.881
bessel 5.20e-01 32.5 dB 5.9845 dB 1380.212

4. Performance

Performance

Channels Exec Time (s) Speedup
1 0.627 1.00x
2 1.229 1.02x
4 2.436 1.03x
8 4.856 1.03x
16 9.743 1.03x

View Full Artifacts

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant