Skip to content

v0.101#3712

Merged
arkid15r merged 22 commits into
mainfrom
dev
Jul 20, 2026
Merged

v0.101#3712
arkid15r merged 22 commits into
mainfrom
dev

Conversation

@arkid15r

Copy link
Copy Markdown
Collaborator

Version 0.101

Released July 20, 2026

arkid15r and others added 22 commits July 6, 2026 15:00
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>
…15.17 in the version-updates group (#3686)

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>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Darkhan <93810741+stetat@users.noreply.github.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>
…3698)

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>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…and Reconciliation in BC (#3695)

Co-authored-by: uttam12331 <uttam12331@users.noreply.github.com>
Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Jul 20, 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: e2a5974d-3779-4738-8a4c-dee7961345e2

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

Copy link
Copy Markdown

@codecov

codecov Bot commented Jul 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (af94a6f) to head (687c7cf).

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #3712    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files          318       320     +2     
  Lines        19167     19289   +122     
  Branches      2457      2477    +20     
==========================================
+ Hits         19167     19289   +122     

☔ 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 72 files

Confidence score: 3/5

  • tests/financial/test_toronto_stock_exchange.py shows 2005 observed Christmas/Boxing Day expectations flipped versus equivalent years, which could either mask a real calendar bug or enforce incorrect behavior for TSX holiday calculations if merged as-is — align 2005 expectations with the established Sunday/Monday observation pattern before merging.
  • holidays/countries/monaco.py drops language="fr" support in favor of fr_MC, creating a public API regression for existing callers that request French Monaco holidays — keep fr as an alias to preserve backward compatibility before merge.
  • holidays/countries/canada.py appears to add an Ontario Monday substitute for weekend Remembrance Day, which can produce incorrect optional-holiday dates in Ontario calendars and downstream scheduling outputs — keep the holiday on Nov 11 without an observed substitute for Ontario.
  • holidays/locale/ar/LC_MESSAGES/XTSE.po has inconsistent Arabic definiteness in the "Civic Holiday" translation, which is low functional risk but user-visible localization quality debt — normalize the phrase form before release if localization accuracy is in scope.
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/ar/LC_MESSAGES/XTSE.po">

<violation number="1" location="holidays/locale/ar/LC_MESSAGES/XTSE.po:52">
P2: The Arabic translation for "Civic Holiday" uses mixed definite article placement: the adjective is definite (المدنية) but the noun is not (عطلة). In Arabic, construct phrases like this should either use the definite article on both parts (العطلة المدنية) or neither (عطلة مدنية), but not mix them. Consider changing to "العطلة المدنية" for proper grammatical agreement.</violation>
</file>

<file name="holidays/countries/monaco.py">

<violation number="1" location="holidays/countries/monaco.py:50">
P2: Existing consumers requesting Monaco holidays with `language="fr"` lose the previously supported locale. Retain `fr` as an alias alongside `fr_MC` to preserve this public API.</violation>
</file>

<file name="holidays/countries/canada.py">

<violation number="1" location="holidays/countries/canada.py:472">
P2: Ontario calendars will add a Monday “Remembrance Day (observed)” after a weekend November 11, although Ontario does not prescribe a substitute day for this optional holiday. Keep the optional holiday on November 11 rather than applying the public-holiday observation rule.</violation>
</file>

<file name="tests/financial/test_toronto_stock_exchange.py">

<violation number="1" location="tests/financial/test_toronto_stock_exchange.py:156">
P1: Christmas Day and Boxing Day observed dates for 2005 appear swapped relative to other years with the same calendar pattern (Dec 25 = Sunday, Dec 26 = Monday). In 2011, 2016, and 2022 — which also have Christmas on Sunday — Christmas is observed on Dec 26 and Boxing Day on Dec 27. But in 2005, the test expects Christmas on Dec 27 and Boxing Day on Dec 26, which is the reverse. This inconsistency suggests a bug in the implementation that the test reproduces, or a mistake in the test data.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

self.assertHolidayName(
name,
"2004-12-27",
"2005-12-27",

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: Christmas Day and Boxing Day observed dates for 2005 appear swapped relative to other years with the same calendar pattern (Dec 25 = Sunday, Dec 26 = Monday). In 2011, 2016, and 2022 — which also have Christmas on Sunday — Christmas is observed on Dec 26 and Boxing Day on Dec 27. But in 2005, the test expects Christmas on Dec 27 and Boxing Day on Dec 26, which is the reverse. This inconsistency suggests a bug in the implementation that the test reproduces, or a mistake in the test data.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At tests/financial/test_toronto_stock_exchange.py, line 156:

<comment>Christmas Day and Boxing Day observed dates for 2005 appear swapped relative to other years with the same calendar pattern (Dec 25 = Sunday, Dec 26 = Monday). In 2011, 2016, and 2022 — which also have Christmas on Sunday — Christmas is observed on Dec 26 and Boxing Day on Dec 27. But in 2005, the test expects Christmas on Dec 27 and Boxing Day on Dec 26, which is the reverse. This inconsistency suggests a bug in the implementation that the test reproduces, or a mistake in the test data.</comment>

<file context>
@@ -0,0 +1,318 @@
+        self.assertHolidayName(
+            name,
+            "2004-12-27",
+            "2005-12-27",
+            "2010-12-27",
+            "2011-12-26",
</file context>


#. Civic Holiday.
msgid "Civic Holiday"
msgstr "عطلة المدنية"

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 Arabic translation for "Civic Holiday" uses mixed definite article placement: the adjective is definite (المدنية) but the noun is not (عطلة). In Arabic, construct phrases like this should either use the definite article on both parts (العطلة المدنية) or neither (عطلة مدنية), but not mix them. Consider changing to "العطلة المدنية" for proper grammatical agreement.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At holidays/locale/ar/LC_MESSAGES/XTSE.po, line 52:

<comment>The Arabic translation for "Civic Holiday" uses mixed definite article placement: the adjective is definite (المدنية) but the noun is not (عطلة). In Arabic, construct phrases like this should either use the definite article on both parts (العطلة المدنية) or neither (عطلة مدنية), but not mix them. Consider changing to "العطلة المدنية" for proper grammatical agreement.</comment>

<file context>
@@ -0,0 +1,81 @@
+
+#. Civic Holiday.
+msgid "Civic Holiday"
+msgstr "عطلة المدنية"
+
+#. Labor Day.
</file context>
Suggested change
msgstr "عطلة المدنية"
msgstr "العطلة المدنية"

observed_label = tr("%s (reporté)")
# Law No. 798 of Feb 18, 1966.
start_year = 1967
supported_languages = ("en_US", "fr_MC", "uk")

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: Existing consumers requesting Monaco holidays with language="fr" lose the previously supported locale. Retain fr as an alias alongside fr_MC to preserve this public API.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At holidays/countries/monaco.py, line 50:

<comment>Existing consumers requesting Monaco holidays with `language="fr"` lose the previously supported locale. Retain `fr` as an alias alongside `fr_MC` to preserve this public API.</comment>

<file context>
@@ -21,15 +21,33 @@ class Monaco(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
+    observed_label = tr("%s (reporté)")
+    # Law No. 798 of Feb 18, 1966.
+    start_year = 1967
+    supported_languages = ("en_US", "fr_MC", "uk")
 
     def __init__(self, *args, **kwargs):
</file context>
Suggested change
supported_languages = ("en_US", "fr_MC", "uk")
supported_languages = ("en_US", "fr", "fr_MC", "uk")


if self._year >= 1931:
# Remembrance Day.
self._add_observed(self._add_remembrance_day(tr("Remembrance Day")))

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: Ontario calendars will add a Monday “Remembrance Day (observed)” after a weekend November 11, although Ontario does not prescribe a substitute day for this optional holiday. Keep the optional holiday on November 11 rather than applying the public-holiday observation rule.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At holidays/countries/canada.py, line 472:

<comment>Ontario calendars will add a Monday “Remembrance Day (observed)” after a weekend November 11, although Ontario does not prescribe a substitute day for this optional holiday. Keep the optional holiday on November 11 rather than applying the public-holiday observation rule.</comment>

<file context>
@@ -449,14 +453,24 @@ def _populate_subdiv_on_public_holidays(self):
 
+        if self._year >= 1931:
+            # Remembrance Day.
+            self._add_observed(self._add_remembrance_day(tr("Remembrance Day")))
+
     def _populate_subdiv_pe_public_holidays(self):
</file context>
Suggested change
self._add_observed(self._add_remembrance_day(tr("Remembrance Day")))
self._add_remembrance_day(tr("Remembrance Day"))

@arkid15r
arkid15r marked this pull request as ready for review July 20, 2026 20:17

@KJhellico KJhellico left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM.

@arkid15r
arkid15r added this pull request to the merge queue Jul 20, 2026
Merged via the queue into main with commit df61082 Jul 20, 2026
47 of 58 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.

6 participants