Skip to content

[FEATURE] spelling cleanup, control protocols, per-channel power (#31), decimal SDCM (#32) - version 1.0.0-rc.4#30

Open
holg wants to merge 2 commits into
globallightingdata:masterfrom
holg:typo-fixes
Open

[FEATURE] spelling cleanup, control protocols, per-channel power (#31), decimal SDCM (#32) - version 1.0.0-rc.4#30
holg wants to merge 2 commits into
globallightingdata:masterfrom
holg:typo-fixes

Conversation

@holg

@holg holg commented Apr 30, 2026

Copy link
Copy Markdown
Contributor

version 1.0.0-rc.4 — consolidated release candidate on top of rc.3.

Combines a backwards-compatible spelling cleanup with three functional extensions. All rc.3 instance files validate unchanged — verified against all six example files from globallightingdata/examples (Minimal Geo, Minimal LDC, Philips SP542P, SLV Tria 2, Trilux Belviso S CDP, Zumtobel P-EVO R100L).

Fixes #31
Fixes #32

1. Spelling cleanup with backwards-compatible deprecations

  • Documentation strings: "descriptive informations" → "descriptive information"; "accoring" → "according" (3×); "Unique identiofier" → "Unique identifier"; "remperature"/"temparature" → "temperature".
  • Cie97LampType: adds "Fluorescent Triphosphor" / "Fluorescent Halophosphate"; keeps the misspelled values as deprecated aliases with xs:appinfo markers.
  • Adds RatedChromaticityCoordinateValues alongside the misspelled RatedChromacityCoordinateValues via xs:choice wrappers (4 occurrences); original kept as deprecated alias, removal scheduled for 2.0.0.

2. Modern lighting control protocols

Adds six standardized protocols to the ControlGear/Interfaces/Interface enumeration, each with an xs:documentation annotation naming the standard body:

Zigbee (CSA), Matter (CSA), Thread (Thread Group), Bluetooth Mesh (Bluetooth SIG — distinct from the existing point-to-point Bluetooth), DALI-2 (IEC 62386 Ed. 2), DALI D4i (DiiA).

Also lifts the arbitrary maxOccurs="12" on Interface to unbounded (the 12 exactly matched the original enum count).

3. Per-channel rated input power (fixes #31)

MultiChannelLightSource/Channels/Channel gains an optional RatedInputPower element after RatedLuminousFlux (xs:double, minInclusive 0, watt — same shape as all other power elements). Until now, per-channel power for RGBW / tunable-white products could only be estimated by prorating the light source total via flux ratios, which is physically incorrect; manufacturers resorted to encoding wattages in DisplayName. The documentation notes that channel powers need not sum to the light source's RatedInputPower (driver losses, channel combination limits).

4. Decimal MacAdam ellipse steps (fixes #32)

InitialColorTolerance and MaintainedColorTolerance move from the closed integer enumeration (1 SDCM7 SDCM) to a new shared named type ColorTolerance:

<xs:pattern value="[0-9](\.[0-9]{1,2})? SDCM"/>

Same "N SDCM" lexical format, now accepting any decimal step with up to two fraction digits (1.5 SDCM, 1.47 SDCM). This solves the half-step request in #32 without re-opening the issue for every finer bin a manufacturer specifies next. Malformed values ("1,5 SDCM", "3SDCM", "12 SDCM") remain invalid. The 8 previously duplicated inline enumerations are consolidated into the one named type.

Note for consumers: every previously valid value matches the pattern, so existing files are unaffected; software that code-generated a closed enum from the seven values must switch to parsing the numeric part.

Backwards compatibility

  • No required elements added, no enumerations removed, no element renames without alias.
  • New elements are minOccurs="0"; the SDCM pattern accepts every previously valid value.
  • Validation evidence: schema parses (xmllint --noout); all six upstream example files validate unchanged; positive tests for 1.5 SDCM / 1.47 SDCM / per-channel power; negative tests confirm malformed SDCM values and negative powers are rejected.

See RELEASE_NOTES_rc4.md for the full change log.

…on 1.0.0-rc.4

Corrects long-standing spelling mistakes in the schema while keeping
all rc.3 instance files valid. Misspelled forms remain accepted but
are marked deprecated and scheduled for removal in 2.0.0.

Documentation strings:
- Photometry: "descriptive informations" -> "descriptive information"
- EU energy label (3x): "accoring" -> "according"
- ControlGear: "Unique identiofier" -> "Unique identifier"
- TemperatureRange: "remperature" / "temparature" -> "temperature"

Enumeration cleanup (Cie97LampType):
- Adds "Fluorescent Triphosphor" / "Fluorescent Halophosphate".
- Keeps "Flourescent Triphosphor" / "Flourescent Halophosphate" as
  deprecated aliases with xs:appinfo + xs:documentation markers.

Element-name cleanup (4 occurrences):
- Adds "RatedChromaticityCoordinateValues" alongside the existing
  "RatedChromacityCoordinateValues" via xs:choice wrappers.
- Original element kept as deprecated alias.

Schema version bumped from 1.0.0-rc.3 to 1.0.0-rc.4. No required
elements added, no enumerations removed, no element renames without
alias - rc.3 files validate against rc.4 unchanged.
Copilot AI review requested due to automatic review settings April 30, 2026 08:43

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the GLDF XSD to correct long-standing spelling mistakes while preserving validation compatibility for existing v1.0.0-rc.3 instance documents, and bumps the schema version to v1.0.0-rc.4.

Changes:

  • Bump schema version to 1.0.0-rc.4 and fix multiple <xs:documentation> spelling issues.
  • Add corrected Cie97LampType enumeration values while retaining the misspelled values as deprecated aliases via xs:annotation/xs:appinfo.
  • Add RatedChromaticityCoordinateValues alongside the misspelled RatedChromacityCoordinateValues using xs:choice wrappers, marking the old name deprecated.
  • Add RELEASE_NOTES_rc4.md documenting the changes and deprecations.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
xsd/gldf.xsd Schema version bump; documentation spelling fixes; backward-compatible aliases for enum values and element name with deprecation markers.
RELEASE_NOTES_rc4.md New release notes describing rc.4 spelling cleanup, compatibility guarantees, and deprecation plan.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

…, decimal SDCM (globallightingdata#32) - version 1.0.0-rc.4

- Add Zigbee, Matter, Thread, Bluetooth Mesh, DALI-2, DALI D4i to the
  ControlGear Interface enumeration; lift maxOccurs 12 -> unbounded
- Add optional RatedInputPower to MultiChannelLightSource Channel,
  fixes globallightingdata#31
- Replace the 8 duplicated inline SDCM enumerations with one shared
  pattern-based ColorTolerance type accepting decimal MacAdam steps
  (e.g. 1.5 SDCM, 1.47 SDCM), fixes globallightingdata#32
- All rc.3 example files from globallightingdata/examples validate
  unchanged
@holg holg changed the title [FIX] spelling cleanup with backwards-compatible deprecations - version 1.0.0-rc.4 [FEATURE] spelling cleanup, control protocols, per-channel power (#31), decimal SDCM (#32) - version 1.0.0-rc.4 Jul 17, 2026
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.

InitialColorTolerance only allows "Integer" Channel object does not have a Power attribute

2 participants