Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
203 commits
Select commit Hold shift + click to select a range
aebf4fb
[sink_flac] missing SWAPS definition
tperale Sep 19, 2024
a8c16c6
Fix regex not using raw string
PinkSerenity Feb 24, 2025
03376bf
swresample: stop using deprecated {in,out}_channel_layout options
acrilique Feb 26, 2025
d79fa30
[source_avcodec] fix build with ffmpeg 8.0
bkuhls Oct 5, 2025
11c60b1
add attribution LEDfx to README.md
bigredfrog Oct 23, 2025
6afe974
Add GitHub Actions workflow for building and publishing aubio-ledfx (#2)
shauneccles Oct 23, 2025
cc0a01f
Merge pull request #1 from PinkSerenity/master
shauneccles Oct 23, 2025
3b8bde8
refactor: update assertions in test_assign_cvec_phas_slice to allow s…
shauneccles Oct 23, 2025
2d0f475
[build] enable bash debugging for better logs in binary wheel job
spiro-c Oct 23, 2025
668bece
Merge pull request #4 from LedFx/fix/numpy-2
shauneccles Oct 23, 2025
91516bb
Merge pull request #5 from spiro-c/fix-build
shauneccles Oct 23, 2025
ec1d137
Merge pull request #7 from bkuhls/ffmpeg8
shauneccles Oct 23, 2025
9f655f8
Merge pull request #8 from tperale/fix_swaps
shauneccles Oct 23, 2025
c55b9ed
Merge pull request #9 from acrilique/master
shauneccles Oct 23, 2025
863c54d
Merge pull request #3 from bigredfrog/readme_ledfx
bigredfrog Oct 23, 2025
4fd5aec
add test sounds
shauneccles Oct 23, 2025
3862daf
Fix regex to work on windows paths
shauneccles Oct 23, 2025
b18e49d
Merge pull request #10 from LedFx/tests/add_sounds
shauneccles Oct 23, 2025
0c6a9a4
migrate to meson build system
shauneccles Oct 26, 2025
2688442
Remove aubio-generated.c
shauneccles Oct 26, 2025
bc9c8b7
Refactor Python extension build process and update comments for clarity
shauneccles Oct 26, 2025
66f5ca9
remove items from manifest
shauneccles Oct 26, 2025
157a809
Update include directories for Python extension to use current build …
shauneccles Oct 26, 2025
b899a90
Simplify include directory setup for Python extension by directly inc…
shauneccles Oct 26, 2025
c10bdb7
Refactor command in generate_python_wrappers to use project source ro…
shauneccles Oct 26, 2025
a782c7d
vcpkg for optional extras
shauneccles Oct 26, 2025
76018d0
Refactor vcpkg integration and improve Python wrapper generation
shauneccles Oct 26, 2025
09e6ac7
Add fallback FFT implementation sources for aubio
shauneccles Oct 26, 2025
34e5620
Refactor Python extension build process to always link against the st…
shauneccles Oct 26, 2025
06d6af9
All optional extras should be auto enabled if found - remove forced args
shauneccles Oct 26, 2025
a075a0f
Refactor get_preprocessor function to eliminate distutils dependency …
shauneccles Oct 26, 2025
d4921f4
Fix build argument formatting for aubio version in Python extension
shauneccles Oct 26, 2025
7a30d82
Fix Windows build: Pass C compiler to gen_external.py via CC env var
shauneccles Oct 26, 2025
f6a358e
Improve artifact organization: separate wheel artifacts per platform
shauneccles Oct 26, 2025
0a878cd
ensure pyaubio_link_args exists
shauneccles Oct 26, 2025
f975afb
update vcpkg options
shauneccles Oct 26, 2025
f796223
Enable full-featured builds on all platforms with proper dependency m…
shauneccles Oct 26, 2025
efed9a8
Bump MACOSX_DEPLOYMENT_TARGET to 13
shauneccles Oct 26, 2025
a87dd20
Update macos deployment target to 15
shauneccles Oct 26, 2025
660dde6
Set macOS deployment target dynamically and update pyproject.toml env…
spiro-c Oct 26, 2025
c4ed446
Merge pull request #14 from spiro-c/meson-fix
shauneccles Oct 27, 2025
2466d2f
Refactor macOS build process to use vcpkg for dependency management w…
shauneccles Oct 27, 2025
f09f326
Add macOS build tools installation and set deployment targets for vcp…
shauneccles Oct 27, 2025
ab2c0af
Add C++ standard library dependency for rubberband on macOS with vcpkg
shauneccles Oct 27, 2025
a041ecd
Simplify C++ standard library linking for rubberband on macOS by dire…
shauneccles Oct 27, 2025
ffd72e4
Add vcpkg integration for Linux and update Windows build configuration
shauneccles Oct 27, 2025
7a2ac97
Refactor Linux vcpkg installation process in build configuration for …
shauneccles Oct 27, 2025
0407cb8
Refactor macOS deployment target setup and vcpkg installation process…
shauneccles Oct 27, 2025
9936ea8
move to macos-15-intel runner
shauneccles Oct 27, 2025
cfd434c
Refactor vcpkg installation commands to set build type for improved i…
shauneccles Oct 27, 2025
6e84906
Enhance vcpkg installation by adding gcc-c++ and make to build tools …
shauneccles Oct 27, 2025
fba5986
Refactor Linux vcpkg installation to streamline build tools setup and…
shauneccles Oct 27, 2025
0ab35e1
Enhance vcpkg installation process by adding make to build tools and …
shauneccles Oct 27, 2025
a596065
Update vcpkg installation script to set CC and CXX environment variab…
shauneccles Oct 27, 2025
31f087e
Refactor vcpkg installation commands to install dependencies in a sin…
shauneccles Oct 27, 2025
02eb1c5
Refactor vcpkg installation commands to streamline dependency install…
shauneccles Oct 27, 2025
6c79262
Update vcpkg installation commands to use overlay triplets and adjust…
shauneccles Oct 27, 2025
210fbc7
Update vcpkg installation commands to use overlay triplets for improv…
shauneccles Oct 27, 2025
81e0c4c
Update vcpkg installation commands to set CC and CXX environment vari…
shauneccles Oct 27, 2025
8c0fe85
Refactor vcpkg installation commands to set VCPKG_BUILD_TYPE for rele…
shauneccles Oct 27, 2025
89bb356
Refactor vcpkg installation commands to use custom triplets for compi…
shauneccles Oct 27, 2025
54ff067
Refactor vcpkg installation commands to use a custom toolchain file f…
shauneccles Oct 27, 2025
ab05db8
Update cibuildwheel configuration to disable build isolation for envi…
shauneccles Oct 28, 2025
f5eeccf
uv install build requirements manually for cibw
shauneccles Oct 28, 2025
4f93c2d
bump cibw version
shauneccles Oct 28, 2025
61193f8
Refactor vcpkg installation commands to use custom triplets with devt…
shauneccles Oct 28, 2025
cdaeafe
Refactor vcpkg installation commands to set CC/CXX environment variab…
shauneccles Oct 28, 2025
18f1f7d
Fix before-build command in cibuildwheel configuration to correctly i…
shauneccles Oct 28, 2025
6c0786e
Remove uv installation from before-build command and update build-fro…
shauneccles Oct 29, 2025
99fbe08
use right commands
shauneccles Oct 29, 2025
7f4daf1
Update vcpkg installation commands to use gcc-toolset-14 for improved…
shauneccles Oct 29, 2025
7be0b2e
install nasm for ffmpeg build
shauneccles Oct 29, 2025
fbeb1bb
Refactor macOS build steps in CI workflow and update numpy dependenci…
shauneccles Nov 10, 2025
f1d5c55
copilot instructions
shauneccles Nov 10, 2025
3ce33d0
Refactor macOS build steps in CI workflow to streamline vcpkg depende…
shauneccles Nov 10, 2025
59861c5
Enhance vcpkg integration in meson.build for improved dependency mana…
shauneccles Nov 10, 2025
bda018f
Refactor vcpkg dependency handling in meson.build for improved librar…
shauneccles Nov 10, 2025
7804de6
Update Meson version requirement to 1.9.0 and adjust build for modern…
shauneccles Nov 10, 2025
0368866
Add installation of Meson and build dependencies in CI workflow
shauneccles Nov 10, 2025
a881b32
Fix installation command for Meson in CI workflow to remove unnecessa…
shauneccles Nov 10, 2025
dfada66
Create virtual environment before installing Meson and dependencies
shauneccles Nov 10, 2025
6cc0560
bump down to 0.4.10a
shauneccles Nov 10, 2025
e82051d
Remove pkg-config directory references from dependency calls in meson…
shauneccles Nov 10, 2025
e7249db
Fix summary function call in meson.build to match updated syntax
shauneccles Nov 10, 2025
5622ff2
install uv for publishing
shauneccles Nov 10, 2025
66d06f7
Remove branch restriction for push events in workflow to ensure taggi…
shauneccles Nov 10, 2025
1930f1e
Initial plan
Copilot Nov 10, 2025
978fc61
Fix strncasecmp compilation error and mpg123 dependency issue
Copilot Nov 10, 2025
2775cfc
Rename package to 'aubio-ledfx' and update maintainer contact and URL
shauneccles Nov 10, 2025
0a99605
Verified fixes work - strncasecmp compiles successfully
Copilot Nov 10, 2025
faf0f74
Remove alpha
shauneccles Nov 10, 2025
f48922c
Add vcpkg_installed and build directories to .gitignore
Copilot Nov 10, 2025
b2e7c3c
Final summary - all fixes verified and tested
Copilot Nov 10, 2025
e8e9a7a
Remove codeql symlink artifact
Copilot Nov 10, 2025
d0833b5
Fix Linux strdup error and Windows DLL bundling
Copilot Nov 10, 2025
f2df817
Fix Linux linking: add libstdc++ and libpthread for C++ deps
Copilot Nov 10, 2025
880e123
Clean up confusing dependency detection log messages
Copilot Nov 10, 2025
3f56d6d
Disable FFmpeg on ARM64 Linux due to vcpkg PIC issues
Copilot Nov 10, 2025
8caaddc
Fix ARM64 Linux FFmpeg PIC issue with custom vcpkg triplet
Copilot Nov 10, 2025
929fa16
Use vcpkg community triplet for Windows release-only builds
Copilot Nov 10, 2025
650bb95
Fix Windows build: use x64-windows-release triplet for rubberband sup…
Copilot Nov 10, 2025
e272864
Ensure wheel portability across all platforms
Copilot Nov 10, 2025
8afa253
Fix Linux linking: use proper Meson dependencies for C++ and pthread
Copilot Nov 10, 2025
dac1e74
Fix Windows delvewheel path - use %CD% instead of {project}
Copilot Nov 10, 2025
25ee44d
Fix C++ compiler access error and install delvewheel on Windows
Copilot Nov 10, 2025
135260e
Fix Linux PIC and Windows vcpkg issues - comprehensive build fix
Copilot Nov 11, 2025
edc8445
Fix vcpkg install for all architectures - remove conditional logic
Copilot Nov 11, 2025
c9dd466
Merge pull request #15 from LedFx/copilot/review-action-run-logs
shauneccles Nov 11, 2025
2f5616f
Initial plan
Copilot Nov 11, 2025
a2cf566
Fix vcpkg triplet mismatch for Windows and Linux builds
Copilot Nov 11, 2025
c73c15a
Update vcpkg triplet documentation
Copilot Nov 11, 2025
8174938
Fix Linux builds: architecture-specific vcpkg installation with ARM64…
Copilot Nov 11, 2025
90e4bbc
Linux: Skip rubberband and ffmpeg due to PIC linking issues
Copilot Nov 11, 2025
a84407a
Fix Linux: bypass vcpkg manifest mode to install selective dependencies
Copilot Nov 11, 2025
e833012
Fix Linux: Rename vcpkg.json to bypass manifest mode
Copilot Nov 11, 2025
5fd9214
Fix Linux: Install libsndfile[core] to avoid MP3/Opus dependency issues
Copilot Nov 11, 2025
5d633bc
Linux: Install full libsndfile with MP3/Opus support via transitive d…
Copilot Nov 11, 2025
19f09f7
Simplify build: Use vcpkg platform expressions instead of manual inst…
Copilot Nov 11, 2025
b06fab4
lowercase FLAC in vcpkg
shauneccles Nov 11, 2025
0dcebaa
Fix Linux: Add explicit transitive dependencies for static linking
Copilot Nov 11, 2025
49c12fd
Merge pull request #16 from LedFx/copilot/sub-pr-13
shauneccles Nov 11, 2025
602a012
Merge branch 'master' into build/meson
shauneccles Nov 11, 2025
2a4baf6
Merge pull request #13 from LedFx:build/meson
shauneccles Nov 11, 2025
6229666
Update project metadata: rename to aubio-ledfx, adjust version, and m…
shauneccles Nov 11, 2025
b2afd99
add uv
bigredfrog Nov 11, 2025
b9867d7
Merge pull request #17 from LedFx/fix_uv
bigredfrog Nov 11, 2025
f0b85da
set default vcpkg_triplet to avoid error when host_system == 'android'
sam-ti Nov 12, 2025
b79f0f1
Merge pull request #18 from broccoliboy/master
shauneccles Nov 12, 2025
e9d5668
Cleanup old CI and lint meson.builds
shauneccles Nov 12, 2025
c72dcda
Update cibuildwheel configuration to include Python 3.14 builds
shauneccles Nov 13, 2025
6bac560
Merge pull request #19 from LedFx/ci/build-3.14
shauneccles Nov 13, 2025
f38f0bd
Update README.md to enhance project description and installation inst…
shauneccles Nov 13, 2025
cffe7b1
Merge pull request #20 from LedFx/docs/update-readme
shauneccles Nov 13, 2025
5a28edf
bump to 0.4.11
shauneccles Nov 13, 2025
d52b76e
Initial plan
Copilot Nov 13, 2025
de44458
Fix out-of-bounds access in spectral rolloff (PR #318)
Copilot Nov 13, 2025
2732dba
Fix out-of-bounds access in Schmitt trigger pitch detection
Copilot Nov 13, 2025
8c505cf
Add comprehensive security review documentation
Copilot Nov 13, 2025
3c5d364
Merge pull request #21 from LedFx/copilot/review-pull-request-318
shauneccles Nov 13, 2025
b8caf75
Initial plan
Copilot Nov 13, 2025
98d536f
Fix buffer over-read vulnerabilities in sampler.c and tempo.c (issue …
Copilot Nov 13, 2025
e710486
Complete comprehensive security review documentation for issue #421
Copilot Nov 13, 2025
ff4472a
Merge pull request #22 from LedFx/copilot/review-security-issue-421
shauneccles Nov 13, 2025
0089c73
Initial plan
Copilot Nov 13, 2025
de2aeff
Fix C test failures by removing double quotes in AUBIO_TESTS_SOURCE d…
Copilot Nov 13, 2025
1ca963c
Merge pull request #23 from LedFx/copilot/fix-aubio-library-tests
shauneccles Nov 13, 2025
8b552ec
Initial plan
Copilot Nov 14, 2025
dccffd3
Add comprehensive security implementation plan
Copilot Nov 14, 2025
196df8c
Fix fvec_quadratic_peak_mag bounds check vulnerability
Copilot Nov 14, 2025
a65b866
Add compiler security hardening flags and documentation
Copilot Nov 14, 2025
c9318f7
Add sanitizer testing infrastructure and documentation
Copilot Nov 14, 2025
095c3d2
Add defensive programming patterns with security assertions
Copilot Nov 14, 2025
1a8b8c0
Fix GitHub Actions permissions and add comprehensive security summary
Copilot Nov 14, 2025
8ae15e7
Update python and upload-artefact versions
shauneccles Nov 14, 2025
386c06c
Fix security CI: use pip for meson/ninja, fix Python version
Copilot Nov 14, 2025
1150683
Fix valgrind CI: run full test suite, focus on memory errors not leaks
Copilot Nov 14, 2025
3d19e52
Remove temp files and update gitignore
Copilot Nov 14, 2025
eb8ed8d
Merge pull request #24 from LedFx/copilot/strengthen-security-and-sta…
shauneccles Nov 14, 2025
360b589
Initial plan
Copilot Nov 14, 2025
b1929e3
Optimize CI build performance with vcpkg binary caching
Copilot Nov 14, 2025
ca246fd
Optimize CI build performance with vcpkg binary caching (macOS/Windows)
Copilot Nov 14, 2025
da8d5e1
Configure sanitizer workflow to run only on C source changes
Copilot Nov 14, 2025
4955081
Fix vcpkg cache path validation errors
Copilot Nov 14, 2025
98dac75
Fix vcpkg binary caching by using native x-gha backend
Copilot Nov 14, 2025
b07e99a
Replace deprecated x-gha backend with vcpkg_installed caching
Copilot Nov 14, 2025
1dd5bb7
Merge pull request #25 from LedFx/copilot/review-build-yml-file
shauneccles Nov 14, 2025
26e8c68
Initial plan
Copilot Nov 14, 2025
582877b
Add comprehensive optimization roadmap with top 5 priorities
Copilot Nov 14, 2025
cb9c85c
Add executive summary and update README with optimization links
Copilot Nov 14, 2025
9b00b4f
Add visual overview diagram for optimization priorities
Copilot Nov 14, 2025
fca1071
Update CI/CD optimization docs to reflect current caching state
Copilot Nov 14, 2025
0bfb9c0
Merge pull request #27 from LedFx/copilot/review-codebase-optimisation
shauneccles Nov 14, 2025
7b56d5a
Initial plan
Copilot Nov 16, 2025
bc1f93d
Fix NULL pointer dereference in new_aubio_filter and basic vector all…
Copilot Nov 16, 2025
cfbf1ac
Add NULL checks to major constructors across codebase
Copilot Nov 16, 2025
196d9b2
Add parameter validation and update security documentation for issue …
Copilot Nov 16, 2025
eff23bc
Add comprehensive summary document for issue #433 resolution
Copilot Nov 16, 2025
2636fa6
Comprehensive fix: Add NULL checks to all remaining aubio C files
Copilot Nov 16, 2025
3b2c6d3
Add comprehensive fix summary documentation
Copilot Nov 16, 2025
75248a6
Add comprehensive NULL allocation test (test-null-alloc)
Copilot Nov 16, 2025
da6531e
Add test coverage summary documentation
Copilot Nov 16, 2025
b6d79b3
Merge pull request #30 from LedFx/copilot/fix-security-issues
shauneccles Nov 16, 2025
6a2c7b6
Initial plan
Copilot Nov 16, 2025
5125b47
Move security documents to SECURITY folder and improve structure
Copilot Nov 16, 2025
15695ab
Merge pull request #31 from LedFx/copilot/move-security-documents-folder
shauneccles Nov 16, 2025
0e1ec74
Initial plan
Copilot Nov 16, 2025
16901eb
Add comprehensive security meta-review report analyzing historical wo…
Copilot Nov 16, 2025
ea8b6b6
Update SECURITY/README.md to reference the new comprehensive meta-rev…
Copilot Nov 16, 2025
e8c5b19
Merge pull request #32 from LedFx/copilot/comprehensive-security-meta…
shauneccles Nov 16, 2025
c173482
Check if catche is working
spiro-c Nov 17, 2025
f990f27
Trying to cache Linux
spiro-c Nov 17, 2025
f23948a
simplify macos build
spiro-c Nov 17, 2025
a912ea3
Clean Up
spiro-c Nov 17, 2025
ccffde0
Merge pull request #33 from spiro-c/cache/linux
shauneccles Nov 17, 2025
5823e93
Initial plan
Copilot Nov 17, 2025
ee65b8e
Add copilot-setup-steps.yml for enhanced Copilot environment
Copilot Nov 17, 2025
af7fa79
Add comprehensive documentation for copilot-setup-steps.yml
Copilot Nov 17, 2025
7b80967
Update README with GitHub Copilot setup information
Copilot Nov 17, 2025
10bdb63
Fix copilot-setup-steps.yml to be valid GitHub Actions workflow and u…
Copilot Nov 17, 2025
5d05296
Refactor copilot-setup-steps.yml to improve workflow triggers and upd…
shauneccles Nov 17, 2025
57ec5b6
Merge pull request #40 from LedFx/copilot/add-copilot-setup-steps-yml
shauneccles Nov 17, 2025
3f10ac1
Add copilot-setup-steps.yml for GitHub Actions workflow to set up dev…
shauneccles Nov 17, 2025
c9b3bfe
Merge pull request #44 from LedFx/ci/copilot-workflow
shauneccles Nov 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 0 additions & 78 deletions .appveyor.yml

This file was deleted.

121 changes: 0 additions & 121 deletions .circleci/config.yml

This file was deleted.

187 changes: 187 additions & 0 deletions .github/COPILOT_SETUP_README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
# Copilot Setup Steps Documentation

This document explains the `.github/copilot-setup-steps.yml` file and how it provides a development environment setup for aubio-ledfx.

## Overview

The `copilot-setup-steps.yml` file is a GitHub Actions workflow that can be used to set up a complete development environment for aubio-ledfx. It installs all necessary tools and dependencies for building, testing, and developing the project.

## What Gets Installed

### 1. System Build Tools
- **Compilers**: gcc, g++ (C99-compliant for aubio)
- **Build systems**: ninja-build (used by Meson)
- **Build utilities**: pkg-config, git
- **Development libraries**:
- libfftw3-dev (FFT library)
- libsndfile1-dev (audio file I/O)
- libsamplerate0-dev (sample rate conversion)
- libjack-dev (JACK audio)
- libavcodec-dev, libavformat-dev, libswresample-dev (FFmpeg)
- librubberband-dev (pitch shifting/time stretching)

### 2. Python Build Environment
- **Python 3.11**: Set up via actions/setup-python
- **Meson**: >=1.9.0 (primary build system)
- **meson-python**: PEP 517 build backend for Python packages
- **ninja**: Build tool (also installed as Python package)
- **NumPy**: >=1.26.4 (required for aubio Python bindings)
- **pip, setuptools, wheel**: Updated to latest versions

### 3. Testing Tools
- **pytest**: Python test runner
- **pytest-cov**: Code coverage for tests
- **build**: Python package build tool
- **uv**: Modern, fast Python package manager

### 4. Security Testing Tools
- **libasan6**: AddressSanitizer runtime library
- **libubsan1**: UndefinedBehaviorSanitizer runtime library
- **valgrind**: Memory error detection tool

These tools enable running the security test suite defined in `.github/workflows/sanitizers.yml`.

### 5. Environment Configuration
Sets up environment variables:
- `PKG_CONFIG_PATH`: Includes system pkg-config paths

## Key Changes from Previous Version

**Removed vcpkg**: The setup now uses system-provided dependencies instead of building them from source with vcpkg. This simplifies the setup and makes it faster, as Ubuntu's package repository provides all necessary libraries.

**System Dependencies**: All C/C++ dependencies are now installed via apt-get:
- Audio codecs and formats via libavcodec-dev, libavformat-dev
- Rubberband for pitch/time manipulation via librubberband-dev
- No need to build these from source
### 6. Verification
- Displays versions of all installed tools
- Lists available system libraries via pkg-config
- Shows installed Python packages
- Provides usage instructions

## How It Works

The `copilot-setup-steps.yml` file is a standard GitHub Actions workflow that can be:

1. Run manually via workflow_dispatch
2. Referenced as a reusable workflow
3. Used as a template for setting up development environments

The workflow has a single job called "setup" that runs on ubuntu-latest and executes 8 steps to configure the environment.

## Usage Examples

After running the setup workflow (manually via GitHub Actions), you can:

### Build the C Library
```bash
meson setup builddir
meson compile -C builddir
```

### Build with Tests Enabled
```bash
meson setup builddir -Dtests=true
meson compile -C builddir
meson test -C builddir
```

### Build with Security Sanitizers
```bash
meson setup builddir -Db_sanitize=address,undefined -Dtests=true
meson compile -C builddir
meson test -C builddir
```

### Build Python Wheel
```bash
# Using uv (faster)
uv build --wheel

# Using pip
pip wheel . --no-deps
```

### Run Tests
```bash
# C tests
meson test -C builddir --print-errorlogs

# Python tests
pytest python/tests/
```

## Benefits

1. **Simplified Setup**: Uses system packages instead of building from source
2. **Faster Setup**: No need to compile dependencies with vcpkg
3. **Complete Toolchain**: All build, test, and security tools available
4. **Standard Workflow**: Follows GitHub Actions best practices

## Maintenance

### Adding New Tools

To add a new tool to the setup:

1. Edit `.github/copilot-setup-steps.yml`
2. Add a new step in the `jobs.setup.steps` section
3. Test the workflow by running it manually
4. Update this documentation

### Adding New Dependencies

For Python dependencies:
- Add to the pip install command in the "Install Python build tools" or "Install Python testing and development tools" step

For system packages:
- Add to the apt-get install command in the "Install system build tools and dependencies" step

## Platform Notes

This setup workflow is designed for **Ubuntu Linux** environments (ubuntu-latest in GitHub Actions).

For local development on other platforms:
- **macOS**: Use Homebrew for system packages (`brew install` instead of `apt-get`)
- **Windows**: Use vcpkg or system package managers, MSVC or MinGW-w64 for compilation

See the main README.md for platform-specific instructions.

## Related Files

- **`.github/copilot-instructions.md`**: Custom instructions for Copilot's behavior
- **`vcpkg.json`**: Declares C/C++ dependencies
- **`pyproject.toml`**: Python package configuration
- **`meson.build`**: Main build system configuration
- **`meson_options.txt`**: Build options and feature toggles
- **`.github/workflows/build.yml`**: CI/CD build workflow
- **`.github/workflows/sanitizers.yml`**: Security testing workflow

## Troubleshooting

### Workflow Fails to Run

If the workflow fails to run, check:
1. GitHub Actions permissions in repository settings
2. Workflow file syntax (validate YAML)
3. Internet connectivity (for downloading packages)

### Missing Dependencies

If dependencies are missing after setup:
```bash
# Manually install system packages
sudo apt-get update
sudo apt-get install -y libfftw3-dev libsndfile1-dev libsamplerate0-dev

# Verify packages are available
pkg-config --list-all | grep -E "fftw3|sndfile|samplerate"
```

## References

- [GitHub Actions Workflow Syntax](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
- [Meson Build System](https://mesonbuild.com/)
- [meson-python](https://meson-python.readthedocs.io/)
- [aubio-ledfx Build Documentation](../doc/building.rst)
- [aubio-ledfx Meson Reference](../doc/meson_reference.rst)
Loading