pamplejuce
pamplejuce copied to clipboard
Support for alpha and beta versioning
Context: https://forum.juce.com/t/how-do-you-handle-plugin-versioning/57673
Plugin companies are in a unique spot where
- Changes to parameters, etc completely break existing user projects
- Alphas, betas and major versions all tend to do this
- There's not much consensus/hygiene from plugin companies or trust from users around this
- There's no tooling or convention for this
Requirements:
- Be able to select Alpha, Beta, Released
- Major versions show up as different plugins in the DAW
- Project name has to change (to prevent build confusion/contamination when switching versions):
set(PROJECT_NAME "MyPlugin_v${MAJOR_VERSION}") - Major version only appends to PRODUCT_NAME where relevant. So NOT on 0.0.1 or 1.0 but on a1, a2, a3, b1, b2, b3, v2, v3:
PRODUCT_NAME "My Plugin v${MAJOR_VERSION}" - Convention for PLUGIN_MANUFACTURER_CODE
Example PLUGIN_MANUFACTURER_CODE:
Two digits reserver for major version numbers support
SM10 Mela - Melatonin: Sine Machine v10
SM11 Mela - Melatonin: Sine Machine v11
SM12 Mela - Melatonin: Sine Machine v12
SM13 Mela - Melatonin: Sine Machine v13
One digit available for major versions, Alpha and Beta specified with A or B
TP3X GDHZ - Goodhertz: Ghz Tupe 3
TPB1 GDHZ - Goodhertz: Ghz Tupe 3 B1
TPB2 GDHZ - Goodhertz: Ghz Tupe 3 B2