Finish SDP Bash Coding Standard cleanup and drop DRAFT status.
DRAFT was originally needed because the Version Identification section
relied on the Streams migration (fixed earlier this session). Before
dropping the tag, fixed several other rough edges found on review:
- Removed the DRAFT NOTICE, which appeared twice (top of doc and again as
a duplicate appendix at the bottom) -- likely leftover from an editing
pass, not intentional.
- Reconciled the Bash Version section, which gave three different
version floors in three sentences (4.3+, 3.x/4.x, 4.0+). Settled on
bash 4.0+, tied to the actual language features already relied on
(associative arrays, case-conversion parameter expansion), both
introduced in 4.0 -- also consistent with the doc's own claim that
RHEL 7 (bash 4.2) is supported, which "4.3+" was not.
- Fixed a factually wrong "must": the doc claimed all scripts get
terminate() by sourcing logging.lib, never defined locally. Checked:
install_sdp.sh and mkdirs.sh both define their own local terminate()
and source no SDP libraries at all, by deliberate design (see prior
discussion this session on install_sdp.sh's intentional
self-containment). Added an explicit exception for this case rather
than leaving an inaccurate blanket "must." Per the user: it's fine for
the standard to describe a target that not all scripts meet yet (e.g.
the exec/tee logging standardization, SDP-568, deferred to 2026.2) --
this is a different case, a permanent design choice, not a
not-yet-migrated one.
- Added a "Syntax Checking" requirement (bash -n on every file, before
ShellCheck) -- previously only practiced, never written down.
- Populated the previously-empty ShellCheck appendix with a real,
concrete example from this session's own work: the lexicographic
string-comparison idiom (# shellcheck disable=SC2072) used for
comparing version-like strings throughout upgrade.sh and elsewhere.
Generated doc/SDP_CodingStandard_bash.html for the first time (this doc
never had one checked in before) via doc/Makefile, for review.