romcal / romcal

JavaScript library that generates liturgical calendars of the Roman Rite of the Roman Catholic Church.
https://romcal.js.org
MIT License
91 stars 45 forks source link

holy_thursday wrong color, purple, instead of white. #511

Closed miguelms95 closed 3 months ago

miguelms95 commented 5 months ago

The Holy Thursday (holy_thursday) color must be white, and in romcal returns purple.

Source: https://en.wikipedia.org/wiki/Liturgical_colours#Roman_Catholic_Church

tukusejssirs commented 5 months ago

Good catch, @miguelms95! :pray:

That said, purple is the liturgical colour of the Chrism Mass, while white is assigned to the evening Mass.

Now, I see only one way to fix this: generate two liturgical celebrations (array items) for the day (i.e. for the year 2024, romcal['2024-03-28'].length would return 2). I think that is reasonable.

IMHO, we should split Holy Saturday exactly the same way:

  1. the first array item would be holy_saturday on which there is no Mass celebrated;
  2. the second array item would be used for the Easter Vigil.

And if @TobiTenno and @emagnier agree with me, I’d even further: add additional items for vigils of important celebrations (usually solemnities) which have special vigil rules (e.g. first evening prayer / vespers in the Liturgy of the Hours). We will definitely need that in order to provide some data suggested in #20.

WDYT, @TobiTenno and @emagnier? :thinking:

TobiTenno commented 5 months ago

i think that makes sense

emagnier commented 5 months ago

Indeed, for Holy Thursday, Romcal already provides 2 elements (2 objects in the array) for these 2 consecutive liturgical times (on the same civil day): Holy Thursday (purple), which is the last day of Lent, and Thursday of the Lord’s Supper (white), marking the beginning of the Easter Triduum.

Regarding Holy Saturday, I am not entirely convinced by the suggestion. This is because the vigil office and/or Mass are part of the same liturgical day, which is Easter Sunday, starting at nightfall. Traditionally in the church, the liturgical "day" began at nightfall and lasted until the next evening. Today this tradition is still followed for some major celebrations (like Christmas, Easter Sunday, Pentecost Sunday), as well as in monastic offices. From a data perspective, the "liturgical day" entity should remain a single object. For instance, Easter Sunday (which includes the Vigil, the Easter Sunday Mass, etc.) should be considered as one single object, not multiple.

To address the need to determine whether for a given civil day "A," the vigils of the following liturgical day "B" can be celebrated, I would suggest adding a property to the "A" object indicating that the vigils of the liturgical day "B" can also be celebrated. For example, on holy_saturday, we could have a property like precedingVigil: [ "easter_sunday" ].

TobiTenno commented 4 months ago

@emagnier I would agree with you if we didn't have Easter Vigil as part of the Holy Saturday name on General Roman/en image

emagnier commented 4 months ago

Here, it's a liturgical error, or more precisely an inaccuracy that needs to be corrected.

It should rather be displayed like this on two separate lines (to separate the liturgical day from the vigil of the following day):

Holy Saturday Evening: Easter Vigil

Hence my proposal above.

TobiTenno commented 4 months ago

looks like we have an issue for that already, so can we close this and reference https://github.com/romcal/romcal/issues/199 instead?

tukusejssirs commented 4 months ago

Regarding Holy Saturday, I am not entirely convinced by the suggestion.

Well, there are generally two ways when a day starts:

  1. at nightfall:
    • based on the Jewish day);
    • as there are some differences from the Jewish day, let’s call it a liturgical day;
  2. at midnight:
    • based on the day in Julian calendar, i.e. a 24-hour day, which is the generally used today;
    • let’s call it a civil day, although calender day could be used too).

While neither is good or bad, IMHO the way it is mostly practically used in the Roman Catholic Church, is that the day starts at midnight (because that is what we use in our everyday life), with respect to our ancestors (and Jews so to speak) in when a liturgical day starts.

Now, I’d be fine to put an entire liturgical day (incl vigils) into a single object in romcal, however, that has its own implications. In ordos, we usually split the liturgical days (started at nightfall) to parts by midnight, i.e. the vigil part (of an important celebration) is listed separately on the previous day, the rest of the celebration day is kept on the day matching in both liturgical and civil cday. This makes sense, because the Easter Vigil or first evening prayer (first vespers) is celebrated/said on the previous day (based on the Gregorian calendar).

While in the Roman Missal, we list the liturgical days that start at nightfall, in (most, or all?) ordos we use civil days, as ordo is a guide that ‘translates’ all the rubrics and other rules for ordinary people and common usage (i.e. civil day). In the end, romcal is more of a calendar (thus more of an ordo) than a Missal, at least from the usage POV.

While I know the Etienne’s definition of LiturgicalDay in the output object of romcal (we have discussed it), I wish we could change it as follows (see also this, however, some usages of liturgicalday should be replaced with civil day):

From a data perspective, the "liturgical day" entity should remain a single object. For instance, Easter Sunday (which includes the Vigil, the Easter Sunday Mass, etc.) should be considered as one single object, not multiple.

I disagree with this (see above).

In romcal, we should split liturgical days by midnight and list them civil days they are part of.

To address the need to determine whether for a given civil day "A," the vigils of the following liturgical day "B" can be celebrated, I would suggest adding a property to the "A" object indicating that the vigils of the liturgical day "B" can also be celebrated. For example, on holy_saturday, we could have a property like precedingVigil: [ "easter_sunday" ].

That would be a mess IMHO. Why would we add a link from a celebration or civil day to a different one? :thinking:

looks like we have an issue for that already, so can we close this and reference #199 instead?

Why the issue is related, it is not exactly the same. I have no problem with closing one because of the other though, as IMO the fix of both should be the same.

I don’t like idea of neither:

As romcal is a library that provides data (mostly) for calendar/ordo generation, IMHO it does not makes to keep the vigils listed under a different civil day than they are celebrated on.

In the end, it boils down to what we define as a scope for romcal. I think is (and always) to provide pre-computed calendar data thst can be used (more or less) rightaway to generate calendars/ordos.

emagnier commented 3 months ago

Thank you @TobiTenno for pointing out this issue https://github.com/romcal/romcal/issues/199 (I'm continue the discussion here).

For this initial topic, I think we've already answered the question. So I'm closing this issue.