luxon-hijri/.github/wiki/Contributing.md
Aric Camarata 7f09544fbc docs(e6): portfolio polish — README trim, CHANGELOG, wiki pages
- Trim README to ≤80 lines with wiki link for full docs
- Add CHANGELOG.md documenting v3.0.0 breaking change (peer-dep migration)
- Add .github/wiki pages: _Sidebar, _Footer, Contributing, SECURITY, CODE_OF_CONDUCT
2026-05-28 14:00:16 -04:00

1.2 KiB

Contributing

Prerequisites

  • Node.js 20 or later
  • pnpm (enabled via corepack: corepack enable)

Setup

git clone https://github.com/acamarata/luxon-hijri.git
cd luxon-hijri
pnpm install

Development

pnpm build          # compile TypeScript
pnpm test           # build + run test suite
pnpm run typecheck  # type-check without emitting
pnpm run lint       # ESLint
pnpm run format     # Prettier format

Architecture

luxon-hijri is a thin adapter layer. All calendar conversion logic lives in hijri-core. This package's responsibility is mapping Luxon's API surface to hijri-core's conversion functions.

When adding features, ask first whether the logic belongs in hijri-core (shared across all wrappers) or in this package (Luxon-specific adapter code).

Test Cross-Validation

The test suite validates against known UAQ table dates and ICOP Ramadan moon sighting dates. When modifying conversion logic, run the cross-validation tests and verify all pass.

See Architecture for the expected date ranges.

Pull Requests

  • One logical change per PR
  • Include cross-validation tests for any new date logic
  • Update CHANGELOG.md under [Unreleased]
  • Do not bump the version number