Skip to content

Fix CI: name_synthesizer raw-MDC lint + signal TODO 19 Item 1 shipped#18

Merged
ronaldtse merged 2 commits into
mainfrom
fix/name-synthesizer-ssot
Jul 24, 2026
Merged

Fix CI: name_synthesizer raw-MDC lint + signal TODO 19 Item 1 shipped#18
ronaldtse merged 2 commits into
mainfrom
fix/name-synthesizer-ssot

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

Summary

Two small fixes that unblock the 0.3.1 patch release.

Phase A — Signal shipped status of TODO 19 Item 1

The TS team flagged that TODO.final/19 reads as a "proposal" doc,
making Opencdd::Condition::ClassReference look unimplemented. It's
actually been on main since commit bae0c56 (PR #17). Added a
Status table at the top of the doc with commit + PR + release refs.

Phase B1 — Fix lint-no-raw-mdc CI failure

CI has been red on main for several commits because
lib/opencdd/entity/name_synthesizer.rb held a 45-entry Hash with
raw MDC_P### literals, violating the SSOT rule enforced by
bin/lint-no-raw-mdc.

Fix: moved the IEC 62656-1 column-name → property-ID table to
Opencdd::PropertyIds::IEC_COLUMN_NAMES (property_ids.rb is the
lint-exempt SSOT). NameSynthesizer::NAME_TO_PROPERTY_ID is kept
as a one-line alias for back-compat — no public-API change.

The lint allowlist is unchanged. The table lives next to
REGISTRY because both are property-ID data; the existing comment
in parcel/sheet_schema.rb about "ontology-only" was about
ParcelMaker variant quirks (MDC_P004_1 etc.), not about standard
IEC column names which are part of the ontology spec.

Test plan

  • bin/lint-no-raw-mdc — passes
  • bundle exec rspec spec/name_synthesizer_spec.rb — 13 examples, 0 failures
  • bundle exec rake (full CI mirror: specs + lint) — 930 examples, 0 failures
  • No public-API change: NameSynthesizer::NAME_TO_PROPERTY_ID still exists

… 1 shipped

Moves the IEC 62656-1 column-name to property-ID table from
entity/name_synthesizer.rb into Opencdd::PropertyIds::IEC_COLUMN_NAMES
(the lint-exempt SSOT). name_synthesizer.rb now holds a one-line
alias; no public-API change. CI lint-no-raw-mdc passes.

Also adds a Status header to TODO.final/19 marking Item 1
(ClassReference) as shipped in commit bae0c56 / PR #17, since the
TS team had no signal that this was real API and not a proposal.

930 specs, 0 failures, lint green.
The script uses bash-only 'set -o pipefail' but had no shebang. On
Ubuntu where /bin/sh is dash, Rake#sh dispatched the script to dash
which rejected the pipefail option. macOS passed because /bin/sh is
bash 3.2.

Add #!/usr/bin/env bash so the kernel routes the executable to bash
on every platform.
@ronaldtse
ronaldtse merged commit 9af7b61 into main Jul 24, 2026
8 of 11 checks passed
@ronaldtse
ronaldtse deleted the fix/name-synthesizer-ssot branch July 24, 2026 11:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant