Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-15, windows-latest]
juce: ["8.0.13", "9.0.3"]
juce: ["8.0.13", "9.0.4"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion CHANGELIST.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# pluginval Change List

### 2.0.0
- Updated JUCE to 9.0.3
- Updated JUCE to 9.0.4
- Fixed the crash handler so a backtrace is shown again when a plugin crashes, and made it async-signal-safe [#144]
- Added `--junit-xml <file>` and `--json-results <file>` to both `pluginval validate` and `pluginval test` to write machine-readable reports for CI (also settable as `JUNIT_XML` / `JSON_RESULTS`). A report that can't be written fails the run. See `docs/Adding pluginval to CI.md`
- Added acceptance testing: `pluginval test <config.json>` renders a plugin with a known state, input (audio/MIDI) and optional playhead, then compares the output against a checked-in reference WAV, exiting `0` on a match and `1` on a mismatch (with a diff WAV). Use `--record-missing` to record new references. See `docs/Acceptance testing.md`
Expand Down
12 changes: 3 additions & 9 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,6 @@ pluginval/
│ ├── ParameterFuzzTests.cpp # Parameter fuzzing tests
│ ├── LocaleTest.cpp # Locale handling tests
│ └── ExtremeTests.cpp # Edge case tests
├── modules/
│ └── juce/ # JUCE framework (git submodule)
├── cmake/
│ ├── CPM.cmake # CMake Package Manager
│ └── GenerateBinaryHeader.cmake # Binary-to-C-header converter
Expand Down Expand Up @@ -143,15 +141,12 @@ pluginval/
### Prerequisites
- CMake 3.15+
- C++20 compatible compiler
- Git (for submodules)
- Git (CPM uses it to fetch JUCE and the other dependencies at configure time)

### Building

```bash
# Initialize JUCE submodule
git submodule update --init

# Configure (Debug build)
# Configure (Debug build) - fetches JUCE etc. via CPM
cmake -B Builds/Debug -DCMAKE_BUILD_TYPE=Debug .

# Build
Expand All @@ -162,7 +157,6 @@ cmake --build Builds/Debug --config Debug

| Option | Description | Default |
|--------|-------------|---------|
| `PLUGINVAL_FETCH_JUCE` | Fetch JUCE with pluginval | ON |
| `PLUGINVAL_VST3_VALIDATOR` | Build with embedded VST3 validator | ON |
| `WITH_ADDRESS_SANITIZER` | Enable AddressSanitizer | OFF |
| `WITH_THREAD_SANITIZER` | Enable ThreadSanitizer | OFF |
Expand Down Expand Up @@ -577,7 +571,7 @@ Without the actions:
## Dependencies

### External
- **JUCE** (v9.0.x) - Audio application framework (git submodule)
- **JUCE** (v9.0.x, currently 9.0.4) - Audio application framework (fetched via CPM when pluginval is the top-level project; otherwise the parent project provides it)
- **magic_enum** (v0.9.7) - Enum reflection (fetched via CPM)
- **CLI11** (v2.6.2) - CLI argument parsing, header-only (fetched via CPM)
- **nlohmann/json** (3.12.0) - JSON settings layering/serialisation (fetched via CPM)
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ endif()

# Only fetch JUCE when top-level (when used as dependency, JUCE is already available)
if (pluginval_IS_TOP_LEVEL)
CPMAddPackage("gh:juce-framework/juce#9.0.3")
CPMAddPackage("gh:juce-framework/juce#9.0.4")
endif()


Expand Down
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ The easiest way to get started with pluginval is to grab pre-compiled binaries f
Once you need to [debug a failed validation](https://github.com/Tracktion/pluginval/blob/develop/docs/Debugging%20a%20failed%20validation.md#quick-debugging) you'll probably want to build locally in Debug:

```
git submodule update --init # grab JUCE
cmake -B Builds/Debug -DCMAKE_BUILD_TYPE=Debug . # configure
cmake -B Builds/Debug -DCMAKE_BUILD_TYPE=Debug . # configure (downloads JUCE and the other dependencies)
cmake --build Builds/Debug --config Debug # build
```

Expand Down
9 changes: 7 additions & 2 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,14 @@ You can help get there by issuing PRs or [funding](FUNDING.md) development.

- [x] Integration of real-time safety checking (via rtcheck)
- [x] Improved command-line handling and json config file support
- [ ] Acceptance testing using input files and reference output files
- [x] Acceptance testing using input files and reference output files
- [x] Integration with CTest
- [x] Machine-readable reports (JUnit XML and JSON)
- [x] GitHub Actions for validation and acceptance testing
- [ ] Acceptance testing: parameter automation during the render
- [ ] Acceptance testing: more comparison methods (e.g. spectral)
- [ ] Acceptance testing: multiple tests in one config file
- [ ] Improved stack trace/crash reporting
- [ ] Automatic integration of Asan/Tsan on platforms that allow it
- [ ] More tests/logging
- [ ] Integration with CTest
- [ ] Integration of real-time safety checking (via RTSan)
2 changes: 1 addition & 1 deletion tests/pluginval_as_dependency/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.22)
project(PluginvalAsDependency VERSION 1.0.0)

set(JUCE_VERSION "9.0.3" CACHE STRING "JUCE version to test against")
set(JUCE_VERSION "9.0.4" CACHE STRING "JUCE version to test against")

include(${CMAKE_CURRENT_LIST_DIR}/../../cmake/CPM.cmake)

Expand Down
Loading