Skip to content

Conversation

Wasif-Shahzad
Copy link
Contributor

@Wasif-Shahzad Wasif-Shahzad commented Apr 11, 2025

I've added Oman's Holidays.

Resolves #1237.

Type of change

  • New country/market holidays support (thank you!)
  • Supported country/market holidays update (calendar discrepancy fix, localization)
  • Existing code/documentation/test/process quality improvement (best practice, cleanup, refactoring, optimization)
  • Dependency update (version deprecation/pin/upgrade)
  • Bugfix (non-breaking change which fixes an issue)
  • Breaking change (a code change causing existing functionality to break)
  • New feature (new holidays functionality in general)

Checklist

Copy link
Contributor

coderabbitai bot commented Apr 11, 2025

Summary by CodeRabbit

  • New Features
    • Added support for Oman, including its public and Islamic holidays, to the list of supported countries.
    • Introduced localization for Omani holidays in both Arabic and English (US).
  • Documentation
    • Updated documentation to reflect Oman as a supported country with relevant details.
  • Tests
    • Added comprehensive tests to ensure accuracy of Omani holiday dates and localization.
  • Bug Fixes
    • No bug fixes included in this release.

Summary by CodeRabbit

  • New Features
    • Added support for Oman, including its public and Islamic holidays, to the list of supported countries.
    • Introduced localization for Omani holidays in both Arabic and English (US).
  • Documentation
    • Updated documentation to reflect Oman as a supported country and increased the total country count.
  • Tests
    • Added comprehensive tests to ensure accuracy of Omani holiday calculations and localization.

Walkthrough

This change introduces comprehensive support for Oman’s public holidays. It adds a new module for Oman, updates the registry and documentation, provides localization files in Arabic and English, and implements a suite of unit tests. The Oman holiday calendar includes both fixed-date and Islamic holidays, with logic for weekend changes and multi-day events. The code also introduces new helper methods for Islamic holidays and ensures that Oman’s holidays are accessible via the main countries package.

Changes

Files / Groups Change Summary
README.md Updated supported country count and added Oman entry with languages.
holidays/countries/init.py Imported Oman and its aliases (OM, OMN) for public API exposure.
holidays/countries/oman.py Added Oman holiday logic, class definitions, Islamic holiday mappings, and aliases.
holidays/locale/ar/LC_MESSAGES/OM.po Added Arabic localization for Oman holidays.
holidays/locale/en_US/LC_MESSAGES/OM.po Added English (US) localization for Oman holidays.
holidays/registry.py Registered Oman in the COUNTRIES dictionary.
tests/countries/test_oman.py Introduced unit tests covering Oman’s holidays, date ranges, estimated holidays, and localization.
holidays/groups/islamic.py Added method for 29th Ramadan holiday to IslamicHolidays group.

Assessment against linked issues

Objective (Issue #) Addressed Explanation
Implement Oman’s public holidays (#1237)
Include Islamic holidays and weekend rules (#1237)
Provide localization in Arabic and English (#1237)
Register Oman in country registry (#1237)
Add unit tests for Oman holidays (#1237)

Suggested reviewers

  • KJhellico

Tip

⚡💬 Agentic Chat (Pro Plan, General Availability)
  • We're introducing multi-step agentic chat in review comments and issue comments, within and outside of PR's. This feature enhances review and issue discussions with the CodeRabbit agentic chat by enabling advanced interactions, including the ability to create pull requests directly from comments and add commits to existing pull requests.

📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f55a9af and 3464847.

📒 Files selected for processing (3)
  • README.md (2 hunks)
  • holidays/countries/__init__.py (1 hunks)
  • holidays/registry.py (1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
holidays/countries/__init__.py (1)
holidays/countries/oman.py (3)
  • Oman (37-113)
  • OM (116-117)
  • OMN (120-121)
🔇 Additional comments (4)
holidays/countries/__init__.py (1)

129-129: Import looks good.

The import statement for Oman is correctly placed in alphabetical order between Norway and Pakistan, maintaining the file's organization.

holidays/registry.py (1)

137-137: Registry entry is properly implemented.

The Oman entry is correctly added to the COUNTRIES dictionary with the appropriate class name and ISO codes (OM, OMN) in alphabetical order between Norway and Pakistan.

README.md (2)

102-102: Country count updated correctly.

The count of supported country codes has been accurately incremented from 167 to 168 to reflect the addition of Oman.


943-948: Oman entry added correctly to the documentation table.

The Oman entry is properly formatted and contains all required information:

  • Country name: Oman
  • Country code: OM
  • Default language: Arabic (ar)
  • Additional language: English (en_US)

The placement is alphabetically correct between Norway and Pakistan, consistent with the import and registry changes.

✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

codecov bot commented Apr 11, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 100.00%. Comparing base (bb75cec) to head (3464847).
Report is 1 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff            @@
##               dev     #2463   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          212       213    +1     
  Lines        13454     13510   +56     
  Branches      1922      1928    +6     
=========================================
+ Hits         13454     13510   +56     

☔ View full report in Codecov by Sentry.
📢 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.

Signed-off-by: Wasif Shahzad <159248937+Wasif-Shahzad@users.noreply.github.com>
Signed-off-by: Wasif Shahzad <159248937+Wasif-Shahzad@users.noreply.github.com>
Signed-off-by: Wasif Shahzad <159248937+Wasif-Shahzad@users.noreply.github.com>
Signed-off-by: Wasif Shahzad <159248937+Wasif-Shahzad@users.noreply.github.com>
@KJhellico KJhellico changed the title Add Oman Holidays Add Oman holidays Apr 11, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🔭 Outside diff range comments (2)
holidays/locale/ar/LC_MESSAGES/OM.po (1)

35-65: 🧹 Nitpick (assertive)

Consider providing translated strings for these Arabic msgids.

All msgstr entries for Sultan's Accession Day, Renaissance Day, National Day, and other holidays are empty. If these messages are intended for Arabic speakers, please provide accurate Arabic translations or confirm that the empty strings are intentional placeholders.

holidays/countries/oman.py (1)

125-187: 🧹 Nitpick (assertive)

Keep the stored dates updated.

The holiday date dictionaries reference timeanddate.com up to 2025. Consider verifying new official decrees or changes for Omani Islamic holidays beyond that range if this library is meant to remain up-to-date.

Do you want me to open a follow-up issue to widen date coverage based on evolving official calendars?

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ac4419e and 8856f73.

📒 Files selected for processing (5)
  • holidays/countries/oman.py (1 hunks)
  • holidays/groups/islamic.py (1 hunks)
  • holidays/locale/ar/LC_MESSAGES/OM.po (1 hunks)
  • holidays/locale/en_US/LC_MESSAGES/OM.po (1 hunks)
  • tests/countries/test_oman.py (1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (2)
holidays/groups/islamic.py (1)
holidays/calendars/islamic.py (1)
  • ramadan_beginning_dates (3868-3869)
holidays/countries/oman.py (4)
holidays/calendars/islamic.py (1)
  • _CustomIslamicHolidays (3881-3882)
holidays/calendars/gregorian.py (1)
  • _timedelta (37-42)
holidays/groups/islamic.py (2)
  • IslamicHolidays (20-426)
  • _add_islamic_new_year_day (283-295)
holidays/holiday_base.py (1)
  • HolidayBase (57-1275)
🔇 Additional comments (15)
holidays/groups/islamic.py (1)

245-253: Confirm 29th day of Ramadan offset is correct.

Adding 28 days to the Ramadan start date to determine the 29th day appears logical. However, confirm whether any Oman-specific decrees shift certain holidays if the 29th coincides with public weekends or other holidays.

holidays/countries/oman.py (3)

56-67: Constructor structure looks fine.

The choice to delegate Islamic holiday logic via OmanIslamicHolidays is straightforward. Ensure that islamic_show_estimated is tested to confirm it toggles the estimated label as expected.


68-108: Weekend logic and decrees appear consistent.

The code respects the shift from Thursday-Friday to Friday-Saturday on May 1, 2013, and references relevant decrees for Oman. Good job ensuring distinct holiday sets before and after 2020.


104-108: Potential overlap with Ramadan-based holidays.

You are adding Eid al-Fitr Eve if the 29th of Ramadan does not conflict with existing days. This could result in skipping Eid Eve if some other code block has already populated that date. Confirm whether that scenario aligns with official decrees about consecutive holidays.

tests/countries/test_oman.py (11)

1-17: Header and imports look good.

The file header properly includes copyright information and follows the project's standard format. Imports are clean and appropriate for the test case.


19-25: Test class setup is well-structured.

The setup establishes a good test range (1970-2050) and includes a specialized instance for testing without estimated Islamic holidays. This approach is thorough and follows best practices for holiday testing.


26-28: Country alias test is correct.

Good validation of Oman's ISO code aliases (OM, OMN).


29-31: No holidays test is appropriate.

Testing that no holidays exist before the expected range (1969) is a good defensive check.


32-41: Fixed date holiday tests for Accession Day and Renaissance Day look correct.

The tests accurately reflect Oman's political timeline:

  • Accession Day starting from 2020
  • Renaissance Day from 1970-2020 (correctly ending in 2020)

This demonstrates good attention to the historical accuracy of Oman's holidays.


42-49: National Day test implementation is appropriate.

The test correctly handles:

  • National Day celebration from 2020 onwards
  • Two-day celebration pattern (18-19 Nov and later 20-21 Nov)
  • Transition to new dates from 2025

Good handling of the complex date pattern.


50-63: Islamic New Year test is comprehensive.

The test includes specific dates for 2018-2024 and verifies behavior with both estimated and non-estimated holiday instances. This dual testing approach ensures the Islamic calendar conversion logic works correctly.


64-92: Mawlid and Isra and Miraj tests are thorough.

Both tests:

  • Include specific dates for multiple years
  • Verify behavior with the no_estimated_holidays instance
  • Use the correct Arabic names for the holidays

This demonstrates careful attention to Islamic calendar conversions.


93-158: Eid holiday tests are extensive and accurate.

The tests for Eid al-Fitr and Eid al-Adha:

  • Include multi-day holiday periods (appropriate for these major festivals)
  • Cover numerous years (2019-2025)
  • Test both estimated and non-estimated scenarios

The multi-day nature of these holidays is correctly represented.


160-195: Year-specific tests provide good validation.

The tests for 2019 and 2021 verify the complete holiday sets for these years, including:

  • The transition from Renaissance Day to Accession Day
  • Introduction of National Day in 2021
  • Proper handling of estimated holidays (marked with مُقدَّر)

This approach helps validate the overall holiday calculation logic.


196-234: Localization tests are comprehensive.

The tests verify both:

  • Default locale (Arabic)
  • English (US) translations

All holiday names are correctly translated between Arabic and English, maintaining proper diacritical marks and apostrophes where needed (e.g., "Isra' and Mi'raj").

Signed-off-by: Wasif Shahzad <159248937+Wasif-Shahzad@users.noreply.github.com>
@Wasif-Shahzad
Copy link
Contributor Author

Explanation about the changes I made

Oman had Eid al-Fitr holidays spanning from 29th of Ramadan (9th month of Islamic calendar) to 3rd of Shawwal (basically ._add_eid_al_fitr_day_tree). The issue was that sometimes Ramadan is 30 days and sometimes it is 29 days, when its 29 days, it was simply equivalent to Eid al-Fitr Eve but other times we needed an additional holiday so I created a function _add_holiday_29_ramadan in holidays/groups/islamic.py which adds a holiday based on ramadan_beginning_dates as 29th Ramadan is just 1st Ramadan + 28 days (_timedelta deals with it). Next I add 29th Ramadan holiday after adding all 3 days of Eid al-Fitr and if we don't have the next day of 29th ramadan in our holidays for some particular year then its 30th ramadan (which would just be Eid al-Fitr eve now) and I add that.

For Eid al-Adha, there were also 4 holidays but it was much simpler. I only needed to use islamic._add_arafah_day.

In the Decree 88/2022, they say that holidays are compensated in case if a public holiday falls on weekend but there are no official rulings on what happens. Sometimes they give holiday, sometimes they give payment as a compensation so I left it as per the suggestion of @KJhellico .

All of these changes were made with the help of @KJhellico

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8856f73 and 60a9ce3.

📒 Files selected for processing (2)
  • holidays/countries/oman.py (1 hunks)
  • tests/countries/test_oman.py (1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (2)
tests/countries/test_oman.py (2)
tests/common.py (8)
  • TestCase (28-338)
  • CommonCountryTests (356-374)
  • assertAliases (121-130)
  • assertNoHolidays (292-294)
  • assertHolidayName (195-199)
  • assertNoHolidayName (273-275)
  • assertHolidays (228-230)
  • assertLocalizedHolidays (327-338)
holidays/countries/oman.py (3)
  • Oman (37-112)
  • OM (115-116)
  • OMN (119-120)
holidays/countries/oman.py (4)
holidays/calendars/islamic.py (1)
  • _CustomIslamicHolidays (3881-3882)
holidays/calendars/gregorian.py (1)
  • _timedelta (37-42)
holidays/groups/islamic.py (13)
  • IslamicHolidays (20-426)
  • _add_islamic_new_year_day (283-295)
  • _add_mawlid_day (329-339)
  • _add_isra_and_miraj_day (297-306)
  • _add_eid_al_fitr_day (152-163)
  • _add_eid_al_fitr_day_two (165-173)
  • _add_eid_al_fitr_day_three (175-183)
  • _add_holiday_29_ramadan (245-253)
  • _add_eid_al_fitr_eve (195-203)
  • _add_arafah_day (72-83)
  • _add_eid_al_adha_day (109-120)
  • _add_eid_al_adha_day_two (122-130)
  • _add_eid_al_adha_day_three (132-140)
holidays/holiday_base.py (1)
  • HolidayBase (57-1275)
🔇 Additional comments (30)
tests/countries/test_oman.py (16)

1-17: LGTM: Header and imports set up correctly.

Standard license header with imports for TestCase, Oman class, and the CommonCountryTests base class needed for holiday testing.


19-25: Good test setup with appropriate year range.

The test class extends CommonCountryTests and TestCase correctly. The year range (1970-2050) is comprehensive and matches Oman's start_year. Good addition of the no_estimated_holidays instance for testing both scenarios.


26-28: LGTM: Aliases test looks good.

Correctly verifies that OM and OMN are valid aliases for the Oman class.


29-31: LGTM: No holidays validation is correct.

Properly verifies that no holidays exist before the start_year (1970).


32-36: LGTM: Accession Day test is accurate.

Correctly tests Sultan's Accession Day presence from 2020 onwards and absence before 2020.


37-41: LGTM: Renaissance Day test is accurate.

Correctly verifies Renaissance Day from 1970-2019 and its absence from 2020 onwards.


42-49: LGTM: National Day test handles date changes correctly.

Properly tests National Day on November 18-19 from 2020-2024 and the transition to November 20-21 from 2025 onwards, as per Decree 15/2025.


50-63: LGTM: Islamic New Year test is comprehensive.

Correctly validates specific dates for recent years and confirms the holiday exists across all years, with and without estimated labeling.


64-77: LGTM: Prophet's Birthday (Mawlid) test is correct.

Properly tests specific dates for recent years and confirms the holiday exists across all years, with and without estimated labeling.


78-92: LGTM: Isra and Mi'raj test is thorough.

Good coverage of specific dates from 2018-2025 and verification across all years with both estimated and non-estimated variants.


93-132: LGTM: Eid al-Fitr test is comprehensive with appropriate date ranges.

Test correctly verifies the multiple days of Eid al-Fitr holidays, including the variable number of days across different years (accounting for 29th of Ramadan when applicable).


133-163: LGTM: Eid al-Adha test properly covers all four days of the holiday.

Test correctly verifies all four days of Eid al-Adha for each tested year, as implemented in the Oman class.


164-180: LGTM: 2019 holiday test is thorough.

Good verification of the complete set of 2019 holidays, including proper labeling of estimated holidays.


181-200: LGTM: 2021 holiday test is comprehensive.

Thorough verification of all 2021 holidays, including the new Sultan's Accession Day and National Day holidays that replaced Renaissance Day.


201-219: LGTM: Default localization test is correct.

Properly verifies that holidays display in Arabic by default, which is the official language of Oman.


220-238: LGTM: English localization test is thorough.

Good verification of English translations for all holidays, confirming proper localization support.

holidays/countries/oman.py (14)

1-12: LGTM: Standard license header.

Includes appropriate license and attribution information.


13-35: LGTM: Imports are comprehensive and well-organized.

All necessary imports are included with appropriate organization - gettext for translations, calendar components, and holiday base classes.


37-47: LGTM: Class definition with good documentation.

The class is properly defined with inheritance from HolidayBase and IslamicHolidays. Documentation includes relevant references to support the implementation.


48-54: LGTM: Country attributes defined correctly.

Appropriate country code, language settings, estimated label format, and supported languages are defined properly.


55-66: LGTM: Initialization method handles Islamic holiday options correctly.

The constructor properly initializes the IslamicHolidays parent class with the Oman-specific calendar and estimation options.


67-70: LGTM: Weekend handling implements correct policy change.

Correctly implements Oman's weekend change from Thursday-Friday to Friday-Saturday starting in 2013.


71-74: LGTM: Sultan's Accession Day implementation is correct.

Properly adds the Sultan's Accession Day holiday starting from 2020.


75-78: LGTM: Renaissance Day implementation is correct.

Correctly adds Renaissance Day holiday for years up to 2019 only.


79-88: LGTM: National Day implementation handles date changes correctly.

Properly implements National Day on November 18-19 for 2020-2024 and changes to November 20-21 from 2025 onwards, as per Decree 15/2025.


89-97: LGTM: Standard Islamic holidays implemented correctly.

Islamic New Year, Prophet's Birthday, and Isra' and Mi'raj holidays are correctly implemented using standard helper methods.


98-106: LGTM: Eid al-Fitr implementation handles variable Ramadan length.

The implementation correctly adds the standard three days of Eid al-Fitr and handles the 29th of Ramadan appropriately as specified in the requirements.


107-113: LGTM: Eid al-Adha implementation includes all four days.

Properly implements all four days of Eid al-Adha: Arafah Day and three Eid days.


115-121: LGTM: Country code aliases defined correctly.

OM and OMN are defined as proper aliases for the Oman class.


123-185: LGTM: Custom Islamic holiday dates are well documented.

OmanIslamicHolidays class provides specific dates for Islamic holidays with appropriate references to timeanddate.com for verification.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 60a9ce3 and f55a9af.

📒 Files selected for processing (1)
  • holidays/countries/oman.py (1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
holidays/countries/oman.py (4)
holidays/calendars/islamic.py (1)
  • _CustomIslamicHolidays (3881-3882)
holidays/calendars/gregorian.py (1)
  • _timedelta (37-42)
holidays/groups/islamic.py (13)
  • IslamicHolidays (20-426)
  • _add_islamic_new_year_day (283-295)
  • _add_mawlid_day (329-339)
  • _add_isra_and_miraj_day (297-306)
  • _add_eid_al_fitr_day (152-163)
  • _add_eid_al_fitr_day_two (165-173)
  • _add_eid_al_fitr_day_three (175-183)
  • _add_holiday_29_ramadan (245-253)
  • _add_eid_al_fitr_eve (195-203)
  • _add_arafah_day (72-83)
  • _add_eid_al_adha_day (109-120)
  • _add_eid_al_adha_day_two (122-130)
  • _add_eid_al_adha_day_three (132-140)
holidays/holiday_base.py (1)
  • HolidayBase (57-1275)
🔇 Additional comments (8)
holidays/countries/oman.py (8)

1-12: Header and license look good.
No concerns or enhancements noted here.


13-35: Imports are consistent with library structure.
They adhere to the established patterns in the codebase. No issues found.


37-47: Docstring references are helpful.
Everything is well-documented with relevant links to decrees. This should guide future maintainers effectively.


49-55: Class-level settings appear accurate.
The default language, start year, and multiple language support are all aligned with Oman’s holidays.


56-67: Constructor usage is straightforward.
Combining the custom Islamic calendar class with standard inheritance meets the library’s pattern. Nice job.


68-114: Holiday population logic is clear.
The separation of holiday additions (pre-2020 vs post-2020) and Islamic holiday handling is consistent. Appears robust for multi-day events.


116-122: Alias classes are standard practice.
The aliases OM and OMN are typical. All good.


124-186: Date dictionaries cover key years.
Defining known Islamic date mappings is helpful. Consider extending future years or referencing official sources for ongoing accuracy.

Signed-off-by: Wasif Shahzad <159248937+Wasif-Shahzad@users.noreply.github.com>
Copy link

Copy link
Collaborator

@KJhellico KJhellico left a comment

Choose a reason for hiding this comment

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

LGTM. 👍

Copy link
Collaborator

@arkid15r arkid15r left a comment

Choose a reason for hiding this comment

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

Great stuff 👍

LGTM

@arkid15r arkid15r added this pull request to the merge queue Apr 15, 2025
Merged via the queue into vacanza:dev with commit 78dce82 Apr 15, 2025
33 checks passed
@arkid15r arkid15r mentioned this pull request Apr 18, 2025
9 tasks
This was referenced Apr 18, 2025
@coderabbitai coderabbitai bot mentioned this pull request Jun 25, 2025
9 tasks
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.

Add Oman holidays
3 participants