-
Notifications
You must be signed in to change notification settings - Fork 11
Refactor to use parameters, update GHA workflows, and apply formatting #22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Socket updates - reconnect loop, merge buttons
Removed method call that led to deadlock
|
@bparks13 Can you review and test it on your end? These changes are necessary for the 1.0 preview release, and we would like to deploy the plugin before the release. |
|
@anjaldoshi Sure thing! I'll pull this down and test it now. Thanks for taking the time to clean this up, it helps me understand what is needed for plugins in the future! Before getting there, I noticed that the checks are failing. It looks like the workflows are running both for the push to the |
|
You’re absolutely right. The For now, we can disregard these failures. Let me know if you have a different approach in mind, and we can modify the workflows accordingly. |
- The default timeout for socket connections is 3000 ms, but the thread only waited 500 ms when stopping, leading to an invalid state. Socket connection is now decreased to 250 ms, and stop timeout increased to 1000 ms to ensure a valid state
bparks13
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The parameter changes look good! Tested using Bonsai with both an acquisition board and a function generator as inputs, both worked quite well for handling disconnects and header changes smoothly.
During testing, I did find a poorly defined state where I hadn't set a socket connection timeout, which could lead to an invalid state where the thread tried to exit before it gracefully completed. This has been corrected, and the rest of it looks good to merge.
|
@anjaldoshi That makes sense with the checks only being needed until the 1.0 release is completed, I just wanted to confirm that this is the expected pattern. Thanks for the work getting this up to speed! I pushed a new commit to fix a timing issue, and everything else looks good to me. |
|
Actually, something I forgot to check, should this be updated to v0.5.0? Once this is merged it will deploy with the same version number (v0.4.0), which from what I remember is not good. My understanding of semantic versioning is that some of the changes in this PR could be considered breaking changes (i.e., adding parameters), but since it is still a 0.y.z we can increment the minor version instead. |
|
Thanks for reviewing, testing, and fixing the timeout-related bug! Yes, we should increment the version to 0.5.0 for semantic versioning purposes. I’ll make the change before merging the code. |
This pull request includes updates to the build workflows, formatting configurations, and refactoring the source code to use parameters and parameter editors.
Source Improvements:
GitHub Workflows Updates:
juce8andtesting-juce8branches. Similar to other plugins, updated to use thejuce8branch for development andtesting-juce8branch for deploying.Formatting and Configuration:
.clang-format: Added a new formatting configuration file for C++ code, used by the GUI and all the other plugins.Build Configuration:
CMakeLists.txt: Updated the macOS architecture settings to support botharm64andx86_64, and changed the rpath for shared libraries.Error Handling:
BrokenPipeErrorto gracefully handle connection closures.These changes are exclusively intended for GUI v1.0.0.