Conversation
Co-authored-by: uttam12331 <uttam12331@users.noreply.github.com> Co-authored-by: ~Jhellico <jhellico@gmail.com>
Signed-off-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>
Signed-off-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>
Signed-off-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>
Signed-off-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>
Signed-off-by: Paresh Joshi <194076591+pareshjoshij@users.noreply.github.com> Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
Signed-off-by: Arkadii Yakovets <2201626+arkid15r@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 <2201626+arkid15r@users.noreply.github.com>
Signed-off-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> Signed-off-by: Arkadii Yakovets <2201626+arkid15r@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 <2201626+arkid15r@users.noreply.github.com>
Signed-off-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>
Signed-off-by: HarshBaghel <hk5324519@gmail.com>
Co-authored-by: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
Signed-off-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com> Signed-off-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>
… publish] Signed-off-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>
…ctory (#3758) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…directory (#3759) 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 <2201626+arkid15r@users.noreply.github.com>
Signed-off-by: Paresh Joshi <194076591+pareshjoshij@users.noreply.github.com> Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com> Co-authored-by: Panpakorn Siripanich <19505219+PPsyrius@users.noreply.github.com>
Co-authored-by: arkid15r <2201626+arkid15r@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: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…3750) Signed-off-by: Drona Jadhav <dronajadhav07@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: github-merge-queue[bot] <118344674+github-merge-queue[bot]@users.noreply.github.com>
Signed-off-by: Arkadii Yakovets <2201626+arkid15r@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 Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 #3769 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 325 327 +2
Lines 19597 19657 +60
Branches 2492 2497 +5
=========================================
+ Hits 19597 19657 +60 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
6 issues found across 61 files
Confidence score: 2/5
- In
.github/workflows/publish-release.yml, the tag/version guard can still publish whenrelease_tagand checked-outVERSIONdiffer, so av0.104tag on a0.103commit could ship mislabeled artifacts/SBOMs — enforce a hard equality check and fail the job on mismatch beforemake packageruns. - In
.github/workflows/ci.yml, manual dispatches ondev/v1share the same concurrency group as push runs and can cancel them, which may blockpublish-pre-release.ymlfrom seeing a successful push — scope concurrency so manual runs cannot cancel release-driving push executions. - In
make.cmd(:Upgrade), failure ofpre-commit autoupdatedoes not stop the target, so the command can report success after later steps and hide a real update failure — exit immediately on that failure to match the POSIX upgrade behavior. - Calendar data handling has correctness risk in
holidays/countries/india.pyandsnapshots/financial/XTAI.json: Maharashtra aliases may be misclassified and multiple years contain duplicate “Chinese New Year’s Eve” dates, which can surface wrong holiday outputs — normalize alias comparison toMHand correct the affected snapshot entries.
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=".github/workflows/publish-release.yml">
<violation number="1" location=".github/workflows/publish-release.yml:43">
P1: When a `v...` tag does not match the checked-out `VERSION`, this guard still publishes it. `make package` uses `VERSION`, while `release_tag` names the SBOM, so a `v0.104` tag on a `0.103` commit can publish the wrong package under that release or fail after building; compare the tag with `VERSION` before exporting `tag_commit`.</violation>
</file>
<file name=".github/workflows/run-code-tests.yml">
<violation number="1" location=".github/workflows/run-code-tests.yml:10">
P3: The workflow-level `DEFAULT_PYTHON_VERSION` env variable is declared but never referenced in this file: every setup step uses `${{ matrix.python-version }}` rather than `${{ env.DEFAULT_PYTHON_VERSION }}`. It is dead configuration copied from `run-build-tests.yml`, where it is actually consumed. Remove it (or use it as the setup-uv `python-version` default) to avoid confusion about which version is authoritative.</violation>
</file>
<file name=".github/workflows/ci.yml">
<violation number="1" location=".github/workflows/ci.yml:23">
P1: When this workflow is manually dispatched on `dev` or `v1`, it shares the push group and cancels an in-progress push run. That can prevent `publish-pre-release.yml` from seeing a successful `dev` push; only enable cancellation for `pull_request` and `merge_group` events.</violation>
</file>
<file name="make.cmd">
<violation number="1" location="make.cmd:159">
P2: When `pre-commit autoupdate` fails, `:Upgrade` continues and can report success after the later lock and sync commands succeed. Exit immediately on this failure, matching the POSIX upgrade target.</violation>
</file>
<file name="snapshots/financial/XTAI.json">
<violation number="1" location="snapshots/financial/XTAI.json:340">
P2: Multiple years list a consecutive pair of days both labeled "Chinese New Year's Eve" (e.g., 2026-02-15 and 2026-02-16, 2027-02-04 and 2027-02-05, 2030-02-01 and 2030-02-02). The Lunar New Year holiday has a single eve; the day immediately before Chinese New Year's Eve is a market closure ("No Trading"), not a second eve. The first of the pair should be "Chinese New Year's Eve" and the second "Chinese New Year" (or the extra eve is spurious). Confirm against the TWSE source data and fix in taiwan_stock_exchange.py, then regenerate this snapshot.</violation>
</file>
<file name="holidays/countries/india.py">
<violation number="1" location="holidays/countries/india.py:425">
P2: When Maharashtra is selected through a supported alias, this condition does not recognize it as `MH`, so Ganesh Chaturthi is incorrectly exposed as an optional holiday and can be merged with the public entry. Compare the normalized subdivision instead.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| run: | | ||
| set -euo pipefail | ||
| git fetch --no-tags origin main | ||
| tag_commit="$(git rev-parse HEAD)" |
There was a problem hiding this comment.
P1: When a v... tag does not match the checked-out VERSION, this guard still publishes it. make package uses VERSION, while release_tag names the SBOM, so a v0.104 tag on a 0.103 commit can publish the wrong package under that release or fail after building; compare the tag with VERSION before exporting tag_commit.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/publish-release.yml, line 43:
<comment>When a `v...` tag does not match the checked-out `VERSION`, this guard still publishes it. `make package` uses `VERSION`, while `release_tag` names the SBOM, so a `v0.104` tag on a `0.103` commit can publish the wrong package under that release or fail after building; compare the tag with `VERSION` before exporting `tag_commit`.</comment>
<file context>
@@ -0,0 +1,145 @@
+ run: |
+ set -euo pipefail
+ git fetch --no-tags origin main
+ tag_commit="$(git rev-parse HEAD)"
+ if ! git merge-base --is-ancestor "$tag_commit" origin/main; then
+ echo "Release tag ${RELEASE_TAG} (${tag_commit}) is not on main." >&2
</file context>
| # Don't cancel push CI: cancelled runs never conclude success, so pre-release | ||
| # workflow_run would miss that commit. Still cancel superseded PR/merge_group runs. | ||
| group: ${{ github.repository }}-ci-${{ github.head_ref || github.ref }} | ||
| cancel-in-progress: ${{ github.event_name != 'push' }} |
There was a problem hiding this comment.
P1: When this workflow is manually dispatched on dev or v1, it shares the push group and cancels an in-progress push run. That can prevent publish-pre-release.yml from seeing a successful dev push; only enable cancellation for pull_request and merge_group events.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/ci.yml, line 23:
<comment>When this workflow is manually dispatched on `dev` or `v1`, it shares the push group and cancels an in-progress push run. That can prevent `publish-pre-release.yml` from seeing a successful `dev` push; only enable cancellation for `pull_request` and `merge_group` events.</comment>
<file context>
@@ -0,0 +1,49 @@
+ # Don't cancel push CI: cancelled runs never conclude success, so pre-release
+ # workflow_run would miss that commit. Still cancel superseded PR/merge_group runs.
+ group: ${{ github.repository }}-ci-${{ github.head_ref || github.ref }}
+ cancel-in-progress: ${{ github.event_name != 'push' }}
+
+permissions: {}
</file context>
| :Upgrade | ||
| uv lock --upgrade | ||
| uv sync --all-groups | ||
| %UV_RUN_CMD% pre-commit autoupdate |
There was a problem hiding this comment.
P2: When pre-commit autoupdate fails, :Upgrade continues and can report success after the later lock and sync commands succeed. Exit immediately on this failure, matching the POSIX upgrade target.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At make.cmd, line 159:
<comment>When `pre-commit autoupdate` fails, `:Upgrade` continues and can report success after the later lock and sync commands succeed. Exit immediately on this failure, matching the POSIX upgrade target.</comment>
<file context>
@@ -107,6 +156,7 @@ GoTo :Help
:Upgrade
- uv lock --upgrade
- uv sync --all-groups
+ %UV_RUN_CMD% pre-commit autoupdate
+ %UV% lock --upgrade
+ %UV% sync --all-groups
</file context>
| %UV_RUN_CMD% pre-commit autoupdate | |
| %UV_RUN_CMD% pre-commit autoupdate | |
| If ErrorLevel 1 Exit /B 1 |
| "2026-02-12": "No Trading (Market opens only for Clearing & Settlement)", | ||
| "2026-02-13": "No Trading (Market opens only for Clearing & Settlement)", | ||
| "2026-02-15": "Chinese New Year's Eve", | ||
| "2026-02-16": "Chinese New Year's Eve", |
There was a problem hiding this comment.
P2: Multiple years list a consecutive pair of days both labeled "Chinese New Year's Eve" (e.g., 2026-02-15 and 2026-02-16, 2027-02-04 and 2027-02-05, 2030-02-01 and 2030-02-02). The Lunar New Year holiday has a single eve; the day immediately before Chinese New Year's Eve is a market closure ("No Trading"), not a second eve. The first of the pair should be "Chinese New Year's Eve" and the second "Chinese New Year" (or the extra eve is spurious). Confirm against the TWSE source data and fix in taiwan_stock_exchange.py, then regenerate this snapshot.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At snapshots/financial/XTAI.json, line 340:
<comment>Multiple years list a consecutive pair of days both labeled "Chinese New Year's Eve" (e.g., 2026-02-15 and 2026-02-16, 2027-02-04 and 2027-02-05, 2030-02-01 and 2030-02-02). The Lunar New Year holiday has a single eve; the day immediately before Chinese New Year's Eve is a market closure ("No Trading"), not a second eve. The first of the pair should be "Chinese New Year's Eve" and the second "Chinese New Year" (or the extra eve is spurious). Confirm against the TWSE source data and fix in taiwan_stock_exchange.py, then regenerate this snapshot.</comment>
<file context>
@@ -0,0 +1,897 @@
+ "2026-02-12": "No Trading (Market opens only for Clearing & Settlement)",
+ "2026-02-13": "No Trading (Market opens only for Clearing & Settlement)",
+ "2026-02-15": "Chinese New Year's Eve",
+ "2026-02-16": "Chinese New Year's Eve",
+ "2026-02-17": "Chinese New Year",
+ "2026-02-18": "Chinese New Year",
</file context>
| if self._year not in {2012, 2023}: | ||
| # Ganesh Chaturthi / Vinayak Chaturthi. | ||
| self._add_ganesh_chaturthi(tr("Ganesh Chaturthi / Vinayak Chaturthi")) | ||
| if self.subdiv != "MH": |
There was a problem hiding this comment.
P2: When Maharashtra is selected through a supported alias, this condition does not recognize it as MH, so Ganesh Chaturthi is incorrectly exposed as an optional holiday and can be merged with the public entry. Compare the normalized subdivision instead.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At holidays/countries/india.py, line 425:
<comment>When Maharashtra is selected through a supported alias, this condition does not recognize it as `MH`, so Ganesh Chaturthi is incorrectly exposed as an optional holiday and can be merged with the public entry. Compare the normalized subdivision instead.</comment>
<file context>
@@ -421,9 +422,22 @@ def _populate_optional_holidays(self):
- if self._year not in {2012, 2023}:
- # Ganesh Chaturthi / Vinayak Chaturthi.
- self._add_ganesh_chaturthi(tr("Ganesh Chaturthi / Vinayak Chaturthi"))
+ if self.subdiv != "MH":
+ self._add_ganesh_chaturthi(
+ # Ganesh Chaturthi / Vinayak Chaturthi.
</file context>
| required: false | ||
|
|
||
| env: | ||
| DEFAULT_PYTHON_VERSION: '3.14' |
There was a problem hiding this comment.
P3: The workflow-level DEFAULT_PYTHON_VERSION env variable is declared but never referenced in this file: every setup step uses ${{ matrix.python-version }} rather than ${{ env.DEFAULT_PYTHON_VERSION }}. It is dead configuration copied from run-build-tests.yml, where it is actually consumed. Remove it (or use it as the setup-uv python-version default) to avoid confusion about which version is authoritative.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/run-code-tests.yml, line 10:
<comment>The workflow-level `DEFAULT_PYTHON_VERSION` env variable is declared but never referenced in this file: every setup step uses `${{ matrix.python-version }}` rather than `${{ env.DEFAULT_PYTHON_VERSION }}`. It is dead configuration copied from `run-build-tests.yml`, where it is actually consumed. Remove it (or use it as the setup-uv `python-version` default) to avoid confusion about which version is authoritative.</comment>
<file context>
@@ -0,0 +1,57 @@
+ required: false
+
+env:
+ DEFAULT_PYTHON_VERSION: '3.14'
+ FORCE_COLOR: 1
+
</file context>



Version 0.103
Released August 17, 2026