Skip to content

docs: follow libmuslim 2026.08.19, five prescribed prayers and per-method high-latitude rule - #32

Merged
rizukirr merged 1 commit into
mainfrom
libmuslim-2026.08.19-docs
Aug 19, 2026
Merged

docs: follow libmuslim 2026.08.19, five prescribed prayers and per-method high-latitude rule#32
rizukirr merged 1 commit into
mainfrom
libmuslim-2026.08.19-docs

Conversation

@rizukirr

Copy link
Copy Markdown
Member

Follows libmuslim 2026.08.19, which carries two breaking changes: #63 removed sunrise and dhuha from struct PrayerTimes, and #62 made the high-latitude rule a property of the calculation method.

Ten files, across the C, Rust and Dart API pages and the muslimtify app docs.

Three code samples were verified by running them, and two were wrong

This is the part worth reviewing closely, because inspection alone would have shipped both errors.

The C and Rust quick-starts printed the wrong Isha. Both showed Isha 19:08 for Jakarta on 2026-07-12 under Kemenag. Compiling the documented C program and running the documented Rust program verbatim both give 19:09. That page was stale before this change, so it is fixed here rather than carried forward.

The Dart unavailable-times example no longer throws. It showed PrayerTimesUnavailable at Tromso in midsummer:

// before, as documented
[Prayer.fajr, Prayer.sunrise, Prayer.maghrib, Prayer.isha]

Under the default MWL parameters that call now succeeds and returns a Fajr of 00:27, because MWL carries a reference latitude of 45 for the polar case. The example would have been a lie about an exception that never fires.

It now names Kemenag explicitly, which publishes no polar rule, and the list is measured rather than assumed:

// after, measured
[Prayer.fajr, Prayer.maghrib, Prayer.isha]

The same location and method on 21 December loses only Maghrib, which the page also now states correctly. It previously claimed midwinter lost sunrise, dhuha and Maghrib.

Download pins

2026.08.18 becomes 2026.08.19, and the note explaining tag versus header version now reads prayertimes.h v0.2.0 alongside hijri.h and timezone.h at v0.1.0. I downloaded the published asset and confirmed it is byte-identical to libmuslim main and carries the five-field struct, so the curl command and the page now agree.

What the API pages say now

The struct, the PrayerTimes fields in Rust and Dart, and the Dart Prayer enum all drop the two members. Each page says what was removed and why, rather than silently showing a shorter list, since anyone reading t.sunrise needs to know it will not compile.

MethodParams gains high_lat_method and high_lat_ref on the C page, and HighLatMethod gains HIGHLAT_NEAREST_LATITUDE. The note there records that only 2 of the 22 methods carry a reference latitude and that the other 20 return non-finite times inside the polar circle deliberately, linking libmuslim#51.

App docs

sunrise and dhuha are gone from the accepted prayer names, the config example and the ihtiyat descriptions, matching muslimtify#74. The Dhuha section in calculation-methods.md is removed.

configuration.md records the migration behaviour explicitly: a config file that still carries a sunrise or dhuha block keeps loading, because the parser skips keys it does not recognise, but the block has no effect. That silence is worth documenting rather than leaving users to discover it.

Verification

npm run build     SUCCESS

…thod high-latitude rule

libmuslim#63 removed sunrise and dhuha from struct PrayerTimes, and
libmuslim#62 made the high-latitude rule a property of the calculation
method. Release 2026.08.19 carries both, so every download pin moves
from 2026.08.18 and prayertimes.h is documented at v0.2.0.

Three claims were verified by running the documented code rather than
edited by inspection, and two of them were wrong.

The C and Rust quick-starts printed Isha 19:08 for Jakarta on
2026-07-12 under Kemenag. Both the C header and the Rust crate return
19:09. That page was already stale before this change.

The Dart quick-start showed PrayerTimesUnavailable at Tromso in
midsummer, listing fajr, sunrise, maghrib and isha. Under the default
MWL parameters that call no longer throws at all, because MWL now
carries a reference latitude of 45 for the polar case. The example now
names Kemenag explicitly, which publishes no such rule, and the prayer
list is the measured one.

The app docs lose sunrise and dhuha as configurable prayers, matching
muslimtify#74, and record that an existing config block for either
keeps loading but has no effect.

npm run build succeeds.
@vercel

vercel Bot commented Aug 19, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
muslimtify Ready Ready Preview Aug 19, 2026 7:09am

@rizukirr
rizukirr merged commit 3a5b2f6 into main Aug 19, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant