TEIC / TEI

The Text Encoding Initiative Guidelines
https://www.tei-c.org
Other
276 stars 88 forks source link

Moved calendar to its own class #2435

Closed raffazizzi closed 1 year ago

raffazizzi commented 1 year ago

Moved calendar to its own class and deprecated on all att.datable members except <date>, <time>, <origDate>, and <docDate>. Fixes #2045.

I was not able to use @validUntil on @calendar because it's not to exclude @calendar from membership to att.datable on the four elements where it needs to remain. So there is a schematron check targeting all the elements it will be removed from.

After the deprecation period, we will need to make <date>, <time>, <origDate>, and <docDate> members of the new att.calendarSystem.

If anyone has suggestions on how to do this better, please let me know!

Also made <docDate> member of att.datable. Fixes #2432.

raffazizzi commented 1 year ago

@ebeshero unfortunately having both old and new classes at the same time would define the attribute twice, breaking the build/schema

ebeshero commented 1 year ago

Sure, an attribute can't be a member of multiple classes unless they are inherited... I guess I was wondering if the new version could be on dev branch safely, but probably not given the length of the deprecation period.

ebeshero commented 1 year ago

Really, I wish we did not have to handle this with deprecation, since it's a change involving class memberships and the improvements explain the usage of @calendar so much more clearly! Just reviewing the decision for a moment, I suppose we are deprecating an overuse of @calendar that has always been problematic but wasn't explained sufficiently. Of course the deprecation is simply to warn people this is going away on some elements.

If we want the improvements to be available as soon as possible, I don't like the persistence of @calendar in the old class much at all.

ebeshero commented 1 year ago

Not sure if this is viable: What if we revised / updated classes now (no commenting out of what we intend to do), and for the deprecation period, we temporarily supply @calendar on the elements where it is to be removed--just without its class and with the deprecation warning notice?