diff --git a/Standards/scs-0210-v2-k8s-version-policy.md b/Standards/scs-0210-v2-k8s-version-policy.md index 1d20010d0..3698757c6 100644 --- a/Standards/scs-0210-v2-k8s-version-policy.md +++ b/Standards/scs-0210-v2-k8s-version-policy.md @@ -4,6 +4,7 @@ type: Standard stabilized_at: 2024-02-08 status: Stable track: KaaS +replaces: scs-0210-v1-k8s-new-version-policy.md --- ## Introduction diff --git a/Tests/chk_adrs.py b/Tests/chk_adrs.py index a0a75f5ce..1173cb2ed 100755 --- a/Tests/chk_adrs.py +++ b/Tests/chk_adrs.py @@ -131,6 +131,18 @@ def check_front_matter(self, fn, front, filenames): ] if errors: self.emit(f"in {fn}: syntax errors with key(s) {', '.join(errors)}") + # special check for replaces field if major version > 1 + if fn[9:12] not in ("vN-", "v1-"): + replaces = front.get("replaces") + if replaces is None: + self.emit(f"in {fn}: missing replaces field") + else: + if isinstance(replaces, str): + print(f"WARNING: in {fn}: replaces field not a list", file=sys.stderr) + replaces = [replaces] + missing = [fn for fn in replaces if fn not in filenames] + if missing: + self.emit(f"in {fn}: original version(s) {','.join(missing)} not found") # now do cross-field checks status = front.get("status") if "replaced_by" in front and status not in ("Deprecated", "Rejected"):