You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(profile): default build profile = dev (mainstream); --release opt-in; v0.0.76
Resolves#179. mcpp's old default profile was "release" (inherited from its
xmake/xlings lineage), but the dominant convention is the opposite: a bare build
is debug/dev and release is opt-in (Cargo/Meson/CMake/Zig/Bazel/MSBuild). Since
mcpp's surface is Cargo-flavored, flip the global default to "dev" (-O0 -g);
release is opt-in via --release / --profile release.
- prepare.cppm: global default profile release -> dev. Precedence:
--profile/--release/--dev flag > [build].default-profile > "dev".
- cli.cppm/cmd_build.cppm: add --release / --dev shorthands (--release is now the
mainstream opt-in flag).
- manifest.cppm: [build].default-profile (alias: profile) — a project's own
default; its role inverts under the flip to "opt into release" for projects
that ship/run optimized. This is the migration mechanism.
- mcpp.toml: default-profile = "release" — keeps mcpp's self-host CI build and
release.yml at -O2 with ZERO workflow changes (no --release threaded through
release pipelines; mcpp's own CI doesn't slow to -O0).
- cross-build-test.yml: bump xlings cache key v2->v3 (the failing job was a
poisoned ~/.xlings cache from the bootstrap-pin-timing, not code).
Tests: 87_build_default_profile.sh (global dev; --release/--dev; project
default-profile=release; --dev override), 68_profile_passthrough.sh (updated for
the new default). Regression: unit 27/0. Doc: design doc L0.5 (convention table +
decision + migration). mcpp self-build verified 'Finished release [optimized]'.
0 commit comments