bump to 0.9.8; add padded-canary build (app_version_padding_tests)
Canary re-proven on this base: reconstruct-from-components trips the fixture checks; an unpadded fixture trips the non-vacuity assertion. De-literalizes stale version examples in comments.
This commit is contained in:
+21
-14
@@ -21,11 +21,17 @@
|
||||
// PURE MODULE: NO REAPER types, NO SWELL, NO vendor/ includes. Standard library
|
||||
// only. Builds and unit-tests without REAPER (mirror of bank_model / tail_control).
|
||||
//
|
||||
// Leading-zero fidelity (V1, Daniel-fixed): the displayed/stamped string is EXACTLY
|
||||
// "0.9.01" — two-digit zero-padded patch. That exactness is why the version STRING is
|
||||
// the authoritative artifact (sourced verbatim from the one CMake variable), not a
|
||||
// Leading-zero fidelity (V1, Daniel-fixed): the displayed/stamped string preserves the
|
||||
// configured version EXACTLY as written — padded and unpadded versions are both
|
||||
// legitimate (e.g. "0.9.8" and "0.9.80" are different versions; a "0.9.01" renders its
|
||||
// zero-padded patch verbatim). That exactness is why the version STRING is the
|
||||
// authoritative artifact (sourced verbatim from the one CMake variable), not a
|
||||
// reconstruction from numeric components — CMake's `project(VERSION)` may normalize a
|
||||
// numeric patch field, so we never round-trip the string through integers to render it.
|
||||
// Guarded against reconstruct-from-components regressions in app_version.cpp by
|
||||
// app_version_padding_tests (the padded canary build). The canary does NOT guard
|
||||
// against the CMakeLists.txt source-of-truth line being changed to a CMake variable
|
||||
// derivation — that case is guarded by the comment block at the top of CMakeLists.txt.
|
||||
|
||||
#include <optional>
|
||||
#include <string>
|
||||
@@ -48,20 +54,21 @@ Channel channel();
|
||||
// True on the beta build only. Convenience over channel() == Channel::Beta.
|
||||
bool isBeta();
|
||||
|
||||
// The user-visible version render. Stable: EXACTLY the CMake string ("0.9.01"). Beta:
|
||||
// that string plus a plain "-beta" suffix ("0.9.01-beta") — a plain suffix, NOT a
|
||||
// git-describe decoration (V2, Daniel-fixed). This is what the show-version action and
|
||||
// the bank-panel readout display. It is NOT the ext-state stamp value (see stampVersion).
|
||||
// The user-visible version render. Stable: EXACTLY the configured CMake string. Beta:
|
||||
// that string plus a plain "-beta" suffix — a plain suffix, NOT a git-describe
|
||||
// decoration (V2, Daniel-fixed). This is what the show-version action and the
|
||||
// bank-panel readout display. It is NOT the ext-state stamp value (see stampVersion).
|
||||
const std::string& appVersion();
|
||||
|
||||
// The ext-state STAMP value — the writing-version recorded into a saved project. This is
|
||||
// the NUMERIC TRIPLE ONLY ("0.9.01") on BOTH channels: it deliberately carries NO channel
|
||||
// suffix, so (a) parseVersion classifies it as Stamped when its own channel reads it back
|
||||
// (a "-beta"-suffixed stamp would classify as Unknown — the V4 stamp-classifiability
|
||||
// requirement), and (b) stable's stamp value is byte-identical regardless of the channel
|
||||
// build. The channel is carried by the ISOLATED namespace (see extStateNamespace), never
|
||||
// baked into the stamp. Distinct from appVersion() precisely so the display can say
|
||||
// "-beta" while the stamp stays classifiable and stable-identical.
|
||||
// the NUMERIC TRIPLE ONLY (the configured string, no channel suffix) on BOTH channels:
|
||||
// it deliberately carries NO channel suffix, so (a) parseVersion classifies it as
|
||||
// Stamped when its own channel reads it back (a "-beta"-suffixed stamp would classify
|
||||
// as Unknown — the V4 stamp-classifiability requirement), and (b) stable's stamp value
|
||||
// is byte-identical regardless of the channel build. The channel is carried by the
|
||||
// ISOLATED namespace (see extStateNamespace), never baked into the stamp. Distinct from
|
||||
// appVersion() precisely so the display can say "-beta" while the stamp stays
|
||||
// classifiable and stable-identical.
|
||||
const std::string& stampVersion();
|
||||
|
||||
// The project ext-state namespace this channel reads and writes. Stable: "reasampler"
|
||||
|
||||
+4
-3
@@ -740,9 +740,10 @@ void drawFooter(LICE_IBitmap* bmp, int w, int h) {
|
||||
}
|
||||
|
||||
// Version/channel readout (Phase V, V3/V4), right-aligned, unobtrusive. appVersion()
|
||||
// renders "0.9.01" on stable and "0.9.01-beta" on beta so a beta panel self-identifies.
|
||||
// It sits inside the space footer_bar reserves at the right (rightReserve) and clears the
|
||||
// prune button (prune_button::rightInset). Dim, passive identification (V3).
|
||||
// renders the configured version string on stable and that string plus "-beta" on beta,
|
||||
// so a beta panel self-identifies. It sits inside the space footer_bar reserves at the
|
||||
// right (rightReserve) and clears the prune button (prune_button::rightInset). Dim,
|
||||
// passive identification (V3).
|
||||
kitText(bmp, KitBox{f.left, f.top, (f.right - f.left) - 8, f.bottom - f.top},
|
||||
reasampler::appVersion().c_str(), Font::Micro, Role::TextDim, Align::Right);
|
||||
|
||||
|
||||
@@ -66,8 +66,9 @@ BEGIN_FACTORY(reasampler::vst::kVendorName, reasampler::vst::kVendorUrl,
|
||||
// as literals. DEF_CLASS2 expands inside GetPluginFactory() and PClassInfo2's constructor
|
||||
// copies the char* into its own fixed buffer at that runtime call, so .c_str() on the
|
||||
// accessors' static-storage strings is valid (no dangling — the refs outlive the copy).
|
||||
// vstPluginName(): "ReaSampler 9000" / "ReaSampler 9000 beta". appVersion(): "0.9.01" /
|
||||
// "0.9.01-beta" (the -beta render V4 already yields on beta).
|
||||
// vstPluginName(): "ReaSampler 9000" / "ReaSampler 9000 beta" (live literals in
|
||||
// app_version.cpp). appVersion(): the configured version string / that string plus
|
||||
// "-beta" (the -beta render V4 already yields on beta).
|
||||
DEF_CLASS2(INLINE_UID(REASAMPLER_ACTIVE_UID_1, REASAMPLER_ACTIVE_UID_2,
|
||||
REASAMPLER_ACTIVE_UID_3, REASAMPLER_ACTIVE_UID_4),
|
||||
Steinberg::PClassInfo::kManyInstances, // cardinality
|
||||
|
||||
Reference in New Issue
Block a user