Skip to content

v0.100#3683

Merged
arkid15r merged 31 commits into
mainfrom
dev
Jul 6, 2026
Merged

v0.100#3683
arkid15r merged 31 commits into
mainfrom
dev

Conversation

@KJhellico

Copy link
Copy Markdown
Collaborator

Version 0.100

Released July 6, 2026

KJhellico and others added 30 commits June 15, 2026 23:46
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>
@coderabbitai

coderabbitai Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 82ab8326-a238-4a76-aafd-d41141fc4f3d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

sonarqubecloud Bot commented Jul 6, 2026

Copy link
Copy Markdown

@codecov

codecov Bot commented Jul 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (aa07086) to head (a2f107e).
⚠️ Report is 32 commits behind head on main.

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

4 issues found across 586 files

Confidence score: 3/5

  • docs/js/downloads.js removed 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.md shows --output as if YYYY placeholders 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.po and holidays/locale/en_BQ/LC_MESSAGES/BQ.po contain inconsistent holiday names (“Pentecost Monday” vs “Pentecost”, and “Whit Sunday” vs project-standard “Pentecost”), which can surface incorrect labels in localized output — align the msgstr values 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

Comment thread docs/js/downloads.js
// 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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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>

Comment thread docs/examples.md

```shell
holidays-ics US --years 2025-2027 --output us_holidays.ics
holidays-ics US --years +10 --categories unofficial --output US_YYYY_YYYY_unofficial.ics

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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>

@arkid15r arkid15r added this pull request to the merge queue Jul 6, 2026
Merged via the queue into main with commit af94a6f Jul 6, 2026
60 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants