Skip to content

Latest commit

 

History

History
91 lines (63 loc) · 1.69 KB

File metadata and controls

91 lines (63 loc) · 1.69 KB

Contributing

Thank you for contributing to HifzLink.

Development Setup

  1. Clone the repo.
  2. Run the app:
go run ./cmd/server
  1. Run checks before opening a PR:
gofmt -w ./cmd ./internal
go test ./...
go run ./scripts/validate

If your PR updates Quran text data, regenerate from source:

go run ./scripts/import
go run ./scripts/validate

Contribution Scope

Good first contributions:

  • improve verse relation browsing
  • improve readability/accessibility of Arabic text UI
  • add tests for parser, relation logic, and handlers
  • improve docs and examples

Pull Request Rules

  • keep changes focused and small
  • explain user impact in PR description
  • update docs when behavior changes
  • update CHANGELOG.md for user-visible changes

Quran Text Data Rules

When working with data/quran.json:

  • do not alter Quran text content
  • preserve UTF-8 Arabic text and diacritics
  • include source attribution updates in NOTICE.md

Required validation before merge:

  • 6236 ayah records
  • unique (surah, ayah)
  • non-empty text_ar

Commit Message Guidance

Use concise imperative messages, for example:

  • Add surah names to API response
  • Fix compare page ayah heading
  • Document dataset attribution requirements

Do not include AI attribution trailers such as:

  • Co-authored-by: Claude ...
  • Generated with Claude Code
  • Co-authored-by: ChatGPT ...
  • Generated by <AI tool/model> ...

Before push, run:

./scripts/check-commit-attribution.sh HEAD

If blocked, fix with:

# latest commit
git commit --amend
git push --force-with-lease

# older commits
git rebase -i <base-commit>
git rebase --continue
git push --force-with-lease