utokusa / OS-251

OS-251 is a synthesizer plugin
https://onsenaudio.com/products/os251
GNU General Public License v3.0
97 stars 5 forks source link

JUCE is pulled twice when cloning recursively #16

Open alex-tee opened 2 years ago

alex-tee commented 2 years ago
Submodule 'lib/JUCE' (https://github.com/juce-framework/JUCE) registered for path 'lib/JUCE'
Submodule 'lib/react-juce' (https://github.com/nick-thompson/react-juce) registered for path 'lib/react-juce'
Cloning into '/home/alex/Documents/aur/os-251/src/os-251/lib/JUCE'...
Cloning into '/home/alex/Documents/aur/os-251/src/os-251/lib/react-juce'...
************* Submodule path 'lib/JUCE': checked out '7c797c8105c2d41872e6e8d08972624f0afd335d'
Submodule path 'lib/react-juce': checked out '2711facc9c064daffeab4f331cb472fa0985585f'
Submodule 'juce' (https://github.com/juce-framework/JUCE.git) registered for path 'lib/react-juce/ext/juce'
Submodule 'yoga' (https://github.com/facebook/yoga.git) registered for path 'lib/react-juce/react_juce/yoga'
Cloning into '/home/alex/Documents/aur/os-251/src/os-251/lib/react-juce/ext/juce'...
Cloning into '/home/alex/Documents/aur/os-251/src/os-251/lib/react-juce/react_juce/yoga'...
************* Submodule path 'lib/react-juce/ext/juce': checked out '7c797c8105c2d41872e6e8d08972624f0afd335d'
Submodule path 'lib/react-juce/react_juce/yoga': checked out 'a38ec3d7a493c5497016d4d1b4e05b89cf5d6f65'
Submodule 'lib/gtest/googletest' (https://github.com/google/googletest.git) registered for path 'lib/react-juce/react_juce/yoga/lib/gtest/googletest'
Cloning into '/home/alex/Documents/aur/os-251/src/os-251/lib/react-juce/react_juce/yoga/lib/gtest/googletest'...
Submodule path 'lib/react-juce/react_juce/yoga/lib/gtest/googletest': checked out 'a2b8a8e07628e5fd60644b6dd99c1b5e7d7f1f47'
utokusa commented 2 years ago

The cause of the problem is that OS-251 has two git submodules. One is JUCE (lib/JUCE) and the other is react-juce (lib/react-juce) which also has JUCE as its submodule. I guess I can resolve it by following https://stackoverflow.com/questions/4115817/duplicate-submodules-with-git .

But currently I don''t want to use the solution because:

What do you think?

alex-tee commented 2 years ago

I see currently both JUCE versions are the same commit (7c797c8105c2d41872e6e8d08972624f0afd335d) so that's fine for now, but if you decide to switch the main JUCE module (for example to https://github.com/lv2-porting-project/JUCE) I think it's best to make sure that react-juce also uses the same JUCE module to avoid trouble in the future. I'm not exactly sure how react-juce works but maybe the 2 JUCE versions will be incompatible or have runtime differences that will cause bugs.

You could use something like a "dist" script to prepare release tarballs (just copy/symlink your main JUCE directory to where react-juce expects JUCE to be when preparing a release tarball).

utokusa commented 2 years ago

2 JUCE versions will be incompatible or have runtime differences that will cause bugs.

Agree. I have to choose between 1. Same JUCE but lib/react-juce/ext/JUCE is updated by me to fix bug #15 2. Use 2 JUCE version. But currently I'm not sure which is better.

You could use something like a "dist" script to prepare release tarballs (just copy/symlink your main JUCE directory to where react-juce expects JUCE to be when preparing a release tarball).

Thanks. So using symlink looks like the ideal option.