Closed ellapollack closed 3 years ago
@maxwellpollack Oh hai! I've been cribbing off of your code as I work on the github action stuff :) It's been really useful!
I decided to go with a submodule for JUCE (Using FetchContent for Catch2 though) and just getting github actions to set the submodule up. I'm not sure it's the right call, but since this is meant as a template for a plugin, I felt like I'd probably be bumping the JUCE version during local dev (no need to re-run cmake, etc.) I'm curious how it feels managing the version in CMake tho!
Hey, nice to meet you! Was happy to see this repo pop up, seems like you're tying up a lot of loose ends I wish I had :)
That's a good point re: version management. I haven't found updating the JUCE version with FetchContent
to be hugely inconvenient, because I've been on the master
branch so updates have been relatively infrequent. But I imagine this could become quite tedious on develop
! This makes me curious... what's your reason for tracking develop
rather than master
by default?
One option to make updating easier would be to change the GIT_TAG
parameter to origin/develop
rather than the commit hash. This would mean that every CMake config would update JUCE to the latest version, but would require the developer to swap in a commit hash or version tag when they want to "freeze" the version.
The main advantage of FetchContent over git submodules, in my eyes, was for beginners: git submodules require an extra step to download (e.g. git clone --recurse-submodules
or git submodule update --init
) whereas FetchContent is automatic. But evidently it's not without its downsides 😁
Hey, nice to meet you! Was happy to see this repo pop up, seems like you're tying up a lot of loose ends I wish I had :)
Ha! Nice to meet you too. Yeah, trying to nerd out once so I never have to nerd out again. Let's see if the strategy pays off :) I saw your repo a few months ago, but it wasn't until I got into the github action stuff that I really dug in — nice work!
This makes me curious... what's your reason for tracking
develop
rather thanmaster
by default?
I like pain! Er, maybe I will change my mind when I have plugins shipped... But the overall goal is to have a good enough build pipeline /test harness that the codebase doesn't have to feel brittle / scary to update, etc. So it's just to encourage that direction, which is one I'm used to coming from web dev stuff...
One option to make updating easier would be to change the
GIT_TAG
parameter toorigin/develop
rather than the commit hash. This would mean that every CMake config would update JUCE to the latest version, but would require the developer to swap in a commit hash or version tag when they want to "freeze" the version.
Ah, that makes sense.
The main advantage of FetchContent over git submodules, in my eyes, was for beginners: git submodules require an extra step to download (e.g.
git clone --recurse-submodules
orgit submodule update --init
) whereas FetchContent is automatic. But evidently it's not without its downsides 😁
Yeah, good point. I'm very friendly with git, so I underestimate this. Related, I've been wondering if it might be nice to structure the repo differently, still sorta chewing on whether this should be an example or if it would be possible to frame it as a dependency. Most ideally, I could have 5 plugins and they somehow point/include this repo for the test/build setup, so I don't end up with 5 copies of various versions of that code.
This
FetchContent
call points to the current tip of the JUCEdevelop
branch:3f78998b967979da8523030ba76e807d4431efcd
.