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
Context: https://forum.juce.com/t/how-do-you-handle-plugin-versioning/57673
Plugin companies are in a unique spot where
Requirements:
set(PROJECT_NAME "MyPlugin_v${MAJOR_VERSION}")
PRODUCT_NAME "My Plugin v${MAJOR_VERSION}"
Example
PLUGIN_MANUFACTURER_CODE
:Two digits reserver for major version numbers support
One digit available for major versions, Alpha and Beta specified with
A
orB