Skip to content

Commit a7dd587

Browse files
authored
Update JUCE to 9.0.4, the roadmap, and the build docs (#199)
1 parent b2d33ab commit a7dd587

7 files changed

Lines changed: 15 additions & 17 deletions

File tree

‎.github/workflows/build.yaml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ jobs:
197197
fail-fast: false
198198
matrix:
199199
os: [ubuntu-latest, macos-15, windows-latest]
200-
juce: ["8.0.13", "9.0.3"]
200+
juce: ["8.0.13", "9.0.4"]
201201
runs-on: ${{ matrix.os }}
202202
steps:
203203
- uses: actions/checkout@v4

‎CHANGELIST.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# pluginval Change List
22

33
### 2.0.0
4-
- Updated JUCE to 9.0.3
4+
- Updated JUCE to 9.0.4
55
- Fixed the crash handler so a backtrace is shown again when a plugin crashes, and made it async-signal-safe [#144]
66
- 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`
77
- 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`

‎CLAUDE.md‎

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,6 @@ pluginval/
107107
│ ├── ParameterFuzzTests.cpp # Parameter fuzzing tests
108108
│ ├── LocaleTest.cpp # Locale handling tests
109109
│ └── ExtremeTests.cpp # Edge case tests
110-
├── modules/
111-
│ └── juce/ # JUCE framework (git submodule)
112110
├── cmake/
113111
│ ├── CPM.cmake # CMake Package Manager
114112
│ └── GenerateBinaryHeader.cmake # Binary-to-C-header converter
@@ -143,15 +141,12 @@ pluginval/
143141
### Prerequisites
144142
- CMake 3.15+
145143
- C++20 compatible compiler
146-
- Git (for submodules)
144+
- Git (CPM uses it to fetch JUCE and the other dependencies at configure time)
147145

148146
### Building
149147

150148
```bash
151-
# Initialize JUCE submodule
152-
git submodule update --init
153-
154-
# Configure (Debug build)
149+
# Configure (Debug build) - fetches JUCE etc. via CPM
155150
cmake -B Builds/Debug -DCMAKE_BUILD_TYPE=Debug .
156151

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

163158
| Option | Description | Default |
164159
|--------|-------------|---------|
165-
| `PLUGINVAL_FETCH_JUCE` | Fetch JUCE with pluginval | ON |
166160
| `PLUGINVAL_VST3_VALIDATOR` | Build with embedded VST3 validator | ON |
167161
| `WITH_ADDRESS_SANITIZER` | Enable AddressSanitizer | OFF |
168162
| `WITH_THREAD_SANITIZER` | Enable ThreadSanitizer | OFF |
@@ -577,7 +571,7 @@ Without the actions:
577571
## Dependencies
578572
579573
### External
580-
- **JUCE** (v9.0.x) - Audio application framework (git submodule)
574+
- **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)
581575
- **magic_enum** (v0.9.7) - Enum reflection (fetched via CPM)
582576
- **CLI11** (v2.6.2) - CLI argument parsing, header-only (fetched via CPM)
583577
- **nlohmann/json** (3.12.0) - JSON settings layering/serialisation (fetched via CPM)

‎CMakeLists.txt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ endif()
8181

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

8787

‎README.md‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ The easiest way to get started with pluginval is to grab pre-compiled binaries f
2727
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:
2828

2929
```
30-
git submodule update --init # grab JUCE
31-
cmake -B Builds/Debug -DCMAKE_BUILD_TYPE=Debug . # configure
30+
cmake -B Builds/Debug -DCMAKE_BUILD_TYPE=Debug . # configure (downloads JUCE and the other dependencies)
3231
cmake --build Builds/Debug --config Debug # build
3332
```
3433

‎ROADMAP.md‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,14 @@ You can help get there by issuing PRs or [funding](FUNDING.md) development.
66

77
- [x] Integration of real-time safety checking (via rtcheck)
88
- [x] Improved command-line handling and json config file support
9-
- [ ] Acceptance testing using input files and reference output files
9+
- [x] Acceptance testing using input files and reference output files
10+
- [x] Integration with CTest
11+
- [x] Machine-readable reports (JUnit XML and JSON)
12+
- [x] GitHub Actions for validation and acceptance testing
13+
- [ ] Acceptance testing: parameter automation during the render
14+
- [ ] Acceptance testing: more comparison methods (e.g. spectral)
15+
- [ ] Acceptance testing: multiple tests in one config file
1016
- [ ] Improved stack trace/crash reporting
1117
- [ ] Automatic integration of Asan/Tsan on platforms that allow it
1218
- [ ] More tests/logging
13-
- [ ] Integration with CTest
1419
- [ ] Integration of real-time safety checking (via RTSan)

‎tests/pluginval_as_dependency/CMakeLists.txt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cmake_minimum_required(VERSION 3.22)
22
project(PluginvalAsDependency VERSION 1.0.0)
33

4-
set(JUCE_VERSION "9.0.3" CACHE STRING "JUCE version to test against")
4+
set(JUCE_VERSION "9.0.4" CACHE STRING "JUCE version to test against")
55

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

0 commit comments

Comments
 (0)