Conversation
Co-authored-by: Arkadii Yakovets <ark@cho.red> Co-authored-by: ~Jhellico <jhellico@gmail.com> Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Arkadii Yakovets <ark@cho.red>
…s group (#3631) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ctory (#3634) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Vaishnavi Bardapure <bardapurevaishnavi1@gmail.com> Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
…ss 1 directory (#3630) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…15.15 in the version-updates group (#3649) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
Signed-off-by: Ankush Kapoor <work.ankushkapoor1626@gmail.com> Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: Panpakorn Siripanich <19505219+PPsyrius@users.noreply.github.com>
Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…roup (#3663) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…15.16 in the version-updates group (#3662) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
Signed-off-by: David Hedlund <davidhedlund@users.noreply.github.com> Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: ~Jhellico <jhellico@gmail.com>
Signed-off-by: Vaishnavi Bardapure <bardapurevaishnavi1@gmail.com> Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: Panpakorn Siripanich <19505219+PPsyrius@users.noreply.github.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3683 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 316 318 +2
Lines 18930 19167 +237
Branches 2420 2457 +37
==========================================
+ Hits 18930 19167 +237 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
4 issues found across 586 files
Confidence score: 3/5
docs/js/downloads.jsremoved null-safe handling in dynamic header extraction, so empty or malformed ICS content can throw (undefined.match()/null[0]) and break the downloads page flow for users — restore defensive checks (or early-return guards) before merging.docs/examples.mdshows--outputas ifYYYYplaceholders are expanded, but the CLI treats that as a literal filename; merging as-is risks users producing incorrectly named files and automations built from the example misbehaving — update the example to a real path (or implement/document placeholder expansion explicitly).holidays/locale/en_CY/LC_MESSAGES/CY.poandholidays/locale/en_BQ/LC_MESSAGES/BQ.pocontain inconsistent holiday names (“Pentecost Monday” vs “Pentecost”, and “Whit Sunday” vs project-standard “Pentecost”), which can surface incorrect labels in localized output — align themsgstrvalues with the intended holiday names before merge or in an immediate follow-up.
Not reviewed (too large): snapshots/countries/IN_MH.json (~2,917 lines), snapshots/countries/IN_GJ.json (~2,784 lines), snapshots/countries/IN_PB.json (~2,709 lines), snapshots/countries/IN_WB.json (~2,687 lines), snapshots/countries/IN_OD.json (~2,656 lines), snapshots/countries/IN_HP.json (~2,655 lines), snapshots/countries/IN_AP.json (~2,627 lines), snapshots/countries/IN_KA.json (~2,627 lines), snapshots/countries/IN_TS.json (~2,622 lines), snapshots/countries/IN_BR.json (~2,618 lines), and 28 more - if these are generated or fixture files, add them to ignored paths to exclude them from future reviews.
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="holidays/locale/en_CY/LC_MESSAGES/CY.po">
<violation number="1" location="holidays/locale/en_CY/LC_MESSAGES/CY.po:67">
P2: Translation mismatch: comment now reads "Pentecost Monday" but `msgstr` still says "Pentecost" (the Sunday). This holiday is the Monday after Pentecost, not Pentecost Sunday itself — the en_US locale (`holidays/locale/en_US/LC_MESSAGES/CY.po`) correctly translates it as "Pentecost Monday". Update the translation to match: `msgstr "Pentecost Monday"`.</violation>
</file>
<file name="holidays/locale/en_BQ/LC_MESSAGES/BQ.po">
<violation number="1" location="holidays/locale/en_BQ/LC_MESSAGES/BQ.po:62">
P3: The English translation for "Eerste Pinksterdag" still uses "Whit Sunday" in this locale, but the standard name has been changed to "Pentecost" project-wide — the other English locales (en_US/BQ, en_US/NL, en_US/SX) all use msgstr "Pentecost". Consider updating this to "Pentecost" for consistency.</violation>
</file>
<file name="docs/examples.md">
<violation number="1" location="docs/examples.md:697">
P2: The `--output` flag takes a literal file path — the tool does not replace `YYYY` with actual years. Running `holidays-ics US --years +10 --categories unofficial --output US_YYYY_YYYY_unofficial.ics` creates a file literally named `US_YYYY_YYYY_unofficial.ics`. Use a descriptive filename without placeholder tokens, e.g. `--output US_unofficial.ics`.</violation>
</file>
<file name="docs/js/downloads.js">
<violation number="1" location="docs/js/downloads.js:196">
P1: Remove null-safe fallbacks in the dynamic header extraction on downloads.js. If the ICS fetch returns empty content or an unexpected format, the code will crash with a `TypeError` at `undefined.match()` or `null[0]`. This was previously handled with optional chaining and a default fallback string.</violation>
</file>
Note: This PR contains a large number of files. cubic only reviews up to 200 files per PR, so some files may not have been reviewed. cubic prioritizes the most important files to review.
Re-trigger cubic
| // Extract dynamic header or fallback to default | ||
| const dynamicHeader = results.find(text => text)?.match(/^BEGIN:VCALENDAR[\s\S]*?(?=BEGIN:VEVENT)/i)?.[0].trim() | ||
| || "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN"; | ||
| const dynamicHeader = results |
There was a problem hiding this comment.
P1: Remove null-safe fallbacks in the dynamic header extraction on downloads.js. If the ICS fetch returns empty content or an unexpected format, the code will crash with a TypeError at undefined.match() or null[0]. This was previously handled with optional chaining and a default fallback string.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/js/downloads.js, line 196:
<comment>Remove null-safe fallbacks in the dynamic header extraction on downloads.js. If the ICS fetch returns empty content or an unexpected format, the code will crash with a `TypeError` at `undefined.match()` or `null[0]`. This was previously handled with optional chaining and a default fallback string.</comment>
<file context>
@@ -193,18 +193,15 @@ function holidayDownloads() {
- // Extract dynamic header or fallback to default
- const dynamicHeader = results.find(text => text)?.match(/^BEGIN:VCALENDAR[\s\S]*?(?=BEGIN:VEVENT)/i)?.[0].trim()
- || "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nCALSCALE:GREGORIAN";
+ const dynamicHeader = results
+ .find(text => text)
+ .match(/^[\s\S]*?CALSCALE:GREGORIAN/m)[0];
</file context>
| msgstr "Labour Day" | ||
|
|
||
| #. Whit Monday. | ||
| #. Pentecost Monday. |
There was a problem hiding this comment.
P2: Translation mismatch: comment now reads "Pentecost Monday" but msgstr still says "Pentecost" (the Sunday). This holiday is the Monday after Pentecost, not Pentecost Sunday itself — the en_US locale (holidays/locale/en_US/LC_MESSAGES/CY.po) correctly translates it as "Pentecost Monday". Update the translation to match: msgstr "Pentecost Monday".
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At holidays/locale/en_CY/LC_MESSAGES/CY.po, line 67:
<comment>Translation mismatch: comment now reads "Pentecost Monday" but `msgstr` still says "Pentecost" (the Sunday). This holiday is the Monday after Pentecost, not Pentecost Sunday itself — the en_US locale (`holidays/locale/en_US/LC_MESSAGES/CY.po`) correctly translates it as "Pentecost Monday". Update the translation to match: `msgstr "Pentecost Monday"`.</comment>
<file context>
@@ -64,7 +64,7 @@ msgstr "Easter Monday"
msgstr "Labour Day"
-#. Whit Monday.
+#. Pentecost Monday.
msgid "Δευτέρα του Αγίου Πνεύματος"
msgstr "Pentecost"
</file context>
|
|
||
| ```shell | ||
| holidays-ics US --years 2025-2027 --output us_holidays.ics | ||
| holidays-ics US --years +10 --categories unofficial --output US_YYYY_YYYY_unofficial.ics |
There was a problem hiding this comment.
P2: The --output flag takes a literal file path — the tool does not replace YYYY with actual years. Running holidays-ics US --years +10 --categories unofficial --output US_YYYY_YYYY_unofficial.ics creates a file literally named US_YYYY_YYYY_unofficial.ics. Use a descriptive filename without placeholder tokens, e.g. --output US_unofficial.ics.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/examples.md, line 697:
<comment>The `--output` flag takes a literal file path — the tool does not replace `YYYY` with actual years. Running `holidays-ics US --years +10 --categories unofficial --output US_YYYY_YYYY_unofficial.ics` creates a file literally named `US_YYYY_YYYY_unofficial.ics`. Use a descriptive filename without placeholder tokens, e.g. `--output US_unofficial.ics`.</comment>
<file context>
@@ -626,47 +626,100 @@ For installation instructions, see `uv` [documentation](https://docs.astral.sh/u
```shell
-holidays-ics US --years 2025-2027 --output us_holidays.ics
+holidays-ics US --years +10 --categories unofficial --output US_YYYY_YYYY_unofficial.ics
</file context>
</details>
```suggestion
holidays-ics US --years +10 --categories unofficial --output US_unofficial.ics
| msgstr "Ascension Day" | ||
|
|
||
| #. Whit Sunday. | ||
| #. Pentecost. |
There was a problem hiding this comment.
P3: The English translation for "Eerste Pinksterdag" still uses "Whit Sunday" in this locale, but the standard name has been changed to "Pentecost" project-wide — the other English locales (en_US/BQ, en_US/NL, en_US/SX) all use msgstr "Pentecost". Consider updating this to "Pentecost" for consistency.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At holidays/locale/en_BQ/LC_MESSAGES/BQ.po, line 62:
<comment>The English translation for "Eerste Pinksterdag" still uses "Whit Sunday" in this locale, but the standard name has been changed to "Pentecost" project-wide — the other English locales (en_US/BQ, en_US/NL, en_US/SX) all use msgstr "Pentecost". Consider updating this to "Pentecost" for consistency.</comment>
<file context>
@@ -59,7 +59,7 @@ msgstr "Labour Day"
msgstr "Ascension Day"
-#. Whit Sunday.
+#. Pentecost.
msgid "Eerste Pinksterdag"
msgstr "Whit Sunday"
</file context>



Version 0.100
Released July 6, 2026