Conversation
Add public holidays for Kosovo based on Law No. 03/L-064. Includes Catholic, Orthodox, and Islamic holidays with localizations for Albanian (sq), English (en_US), and Serbian (sr). Resolves vacanza#3129
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughAdds Kosovo (XK) country support: new Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
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 |
There was a problem hiding this comment.
Pull request overview
Adds Kosovo (XK/XKK) as a supported country with public holiday definitions and localization, expanding the library’s country registry and documentation.
Changes:
- Introduces
holidays.countries.kosovo.Kosovowith Kosovo public holidays (incl. Catholic/Orthodox Easter and Islamic holidays). - Adds localization catalogs for
sq(default),en_US, andsr, plus a snapshot baseline forXK. - Registers Kosovo in the country registry/public API exports and documents it in the README; adds a dedicated test suite.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
holidays/countries/kosovo.py |
Implements Kosovo holiday rules and aliases XK/XKK. |
holidays/registry.py |
Registers kosovo with codes XK and XKK. |
holidays/countries/__init__.py |
Exposes Kosovo, XK, XKK in the public countries namespace. |
holidays/locale/sq/LC_MESSAGES/XK.po |
Adds source (sq) catalog entries for XK holiday names/labels. |
holidays/locale/en_US/LC_MESSAGES/XK.po |
Adds English translations for XK holiday names/estimated label. |
holidays/locale/sr/LC_MESSAGES/XK.po |
Adds Serbian translations for XK holiday names/estimated label. |
tests/countries/test_kosovo.py |
Adds unit tests and localization checks for Kosovo. |
snapshots/countries/XK_COMMON.json |
Adds snapshot output for Kosovo common holidays. |
README.md |
Increments supported country count and adds Kosovo to the supported countries table. |
CONTRIBUTORS |
Adds contributor name. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@holidays/locale/en_US/LC_MESSAGES/XK.po`:
- Around line 42-48: Update the English translations to faithfully mirror the
Albanian source strings: change the msgstr for "Dita e Pavarësisë së Republikës
së Kosovës" to include "of the Republic of Kosovo" (e.g., "Independence Day of
the Republic of Kosovo") and change the msgstr for "Dita e Kushtetutës së
Republikës së Kosovës" to "Constitution Day of the Republic of Kosovo"; also
review the Islamic holiday entries (the msgids that mention "first day") and
ensure their msgstrs include "First day of ..." so the generated English
snapshot preserves the full original meaning.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: eabb1e15-11ab-4443-9c6b-84cb610d4b49
📒 Files selected for processing (10)
CONTRIBUTORSREADME.mdholidays/countries/__init__.pyholidays/countries/kosovo.pyholidays/locale/en_US/LC_MESSAGES/XK.poholidays/locale/sq/LC_MESSAGES/XK.poholidays/locale/sr/LC_MESSAGES/XK.poholidays/registry.pysnapshots/countries/XK_COMMON.jsontests/countries/test_kosovo.py
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## dev #3327 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 309 310 +1
Lines 18543 18583 +40
Branches 2377 2378 +1
=========================================
+ Hits 18543 18583 +40 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This reverts commit 97d3f0d.
|
Law No. 03/L-064:
So, observed holidays support needs to be implemented too. And as far as I can understand from the provisions of the law and calendars (like this), Easter Monday is not a separate holiday, but a day off transferred from Sunday (observed holiday). |
Thanks for the review! Implemented |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@holidays/locale/en_US/LC_MESSAGES/XK.po`:
- Around line 52-54: Add English translator comments above the Kosovo holiday
msgid entries so they match the sr locale; specifically insert a translator
comment (e.g., "#. English: Independence Day" or similar descriptive comment)
immediately above the msgid "Dita e Pavarësisë së Republikës së Kosovës" that
maps to msgstr "Independence Day", and likewise add the corresponding English
translator comment above the Constitution Day msgid/msgstr pair referenced
around the other lines (the same comment style and wording used in the sr locale
for consistency).
In `@holidays/locale/sq/LC_MESSAGES/XK.po`:
- Around line 52-54: Add translator comments above the translation entries for
Kosovo's Independence Day and Constitution Day similar to other locales: insert
a translator comment (e.g., "#. Translators: name/description" or "#
Translators: comment") immediately above the msgid "Dita e Pavarësisë së
Republikës së Kosovës" and the corresponding msgid entries for the Constitution
Day entries referenced in the file so they match the style used in other locale
PO files.
In `@holidays/locale/sr/LC_MESSAGES/XK.po`:
- Around line 52-54: Add the missing English translator comment lines (the "#. "
translator comment) above the msgid entries for "Dita e Pavarësisë së Republikës
së Kosovës" and the msgid at lines 63-65 (Constitution Day entry) so they match
other entries' format; locate the two msgid strings "Dita e Pavarësisë së
Republikës së Kosovës" and the Constitution Day msgid in XK.po and insert the
appropriate English comments (e.g., "#. Independence Day" and "#. Constitution
Day" or the existing English phrases used elsewhere) directly above their
corresponding msgid lines.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: e85a4904-109d-43e5-8952-c8142e288146
📒 Files selected for processing (6)
holidays/countries/kosovo.pyholidays/locale/en_US/LC_MESSAGES/XK.poholidays/locale/sq/LC_MESSAGES/XK.poholidays/locale/sr/LC_MESSAGES/XK.posnapshots/countries/XK_COMMON.jsontests/countries/test_kosovo.py
- Remove future dates (2027+) from observed test assertions - Inline obs_name variable (used only once) - Move test_catholic_christmas_day before test_eid_al_fitr (holiday order) - Change test_2024 to test_2025 (was duplicate of test_l10n_default)
KJhellico
left a comment
There was a problem hiding this comment.
Last small fix, rest is LGTM.
4b5c83a to
3f492e7
Compare
Co-authored-by: ~Jhellico <[email protected]>
3f492e7 to
1bca614
Compare
Co-authored-by: ~Jhellico <[email protected]> Signed-off-by: Blend Halilaj <[email protected]>
Co-authored-by: Copilot <[email protected]> Signed-off-by: Arkadii Yakovets <[email protected]>
|



Add Kosovo holidays
Add public holidays for the Republic of Kosovo (XK/XKK) based on Law No. 03/L-064 on Public Holidays in the Republic of Kosovo.
Resolves #3129
Type of change
holidaysfunctionality in general)Checklist
make checklocally; all checks and tests passed.