docs: "How to add a CRM ingest reader" checklist for contributors
Maintainers usually reply within 1 day
@IG-ABHINAV is already working on this.
Since Nov 10, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- Half a day
- Newbie friendliness
- 68/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python
- Domain
- documentation
Research direction
Start by reading philanthropy/ingest/_raisers_edge.py and tests/test_raisers_edge.py, plus tests/test_read_gifts.py, and note the steps a reader PR takes. Then check CONTRIBUTING.md and docs/contributing.md for where the new section belongs, and review the comments on #312, #314 and #321. Done means a linked section in CONTRIBUTING.md covering each listed step, and mkdocs build --strict passing. Comment on the issue before starting.
Written by the indexing model from the issue text.
Description
Goal
A new contributor can add a CRM reader in one pass, without the review round-trips the last four reader PRs needed.
Acceptance criteria
- A section in
CONTRIBUTING.md(linked fromdocs/contributing.md) lists every step a reader PR needs, in order. - It covers: citing the vendor's own docs for every field name and type/status term (module docstring and PR body); header aliases onto
contact_id/receive_date/total_amount; aDEFAULT_...exclusion or inclusion constant whereNoneor an empty sequence disables the filter; a warning when the type/status column is missing; the typed empty frame; delegating tocivicrm_contributions_to_features(..., statuses=None). - It covers registration:
GIFT_SOURCES,_REGISTRYand theread_giftsdocstring in_read_gifts.py, the import and alphabetical__all__entry iningest/__init__.py, and a row indocs/reference/index.md. - It covers the CLI: the private
_<crm>_received_rowsrow-filter helper that*_to_featurescalls, and its entry in the CLI's raw-gift reader table (#341), whichcheckandtrain --task leadershipuse.features --sourceneeds nothing once #338 lands. - It covers tests: a
tests/test_<crm>.pyfile, the tworead_giftstests (path matches the direct call; the filter kwarg reaches the aggregator), and the hardcodedGIFT_SOURCESset intests/test_read_gifts.py. - It says to add exactly one CHANGELOG bullet and never run an editor formatter over
CHANGELOG.md, and showsgit diff upstream/main -- CHANGELOG.mdas the check. -
mkdocs build --strictpasses.
Scope
Docs only. Take the steps from an existing reader such as philanthropy/ingest/_raisers_edge.py and its tests, not from memory.
Where to start
CONTRIBUTING.md,docs/contributing.mdphilanthropy/ingest/_raisers_edge.py,tests/test_raisers_edge.py,tests/test_read_gifts.py- Review comments on #312, #314 and #321 for what tripped people up
Dependencies
- None to start. Write the CLI step against #341's final shape: if PR #359 has not merged, describe the step and update it when it does.
Phase order is a release plan, not a rule against picking up independent work early. Comment on this issue before you start so two people don't build the same thing.
- Dominant language
- Python
- Stars
- 11
- Forks
- 23
- Avg merge
- 15h 13m
- Merged PRs (30d)
- 30
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from PhilanthroPy-Project/PhilanthroPy
-
bug roadmap
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
PhilanthroPy-Project/PhilanthroPy#366 ·
Maintainers usually reply within 1 day
-
docs: state that grateful-patient features time every gift against the latest dischargePossibly taken @jimoholayinka01 claimed this today. Opendocumentation good first issue roadmap
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
PhilanthroPy-Project/PhilanthroPy#361 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
enhancement help wanted roadmap
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
PhilanthroPy-Project/PhilanthroPy#345 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 25/100
PhilanthroPy-Project/PhilanthroPy#369 ·
Maintainers usually reply within 1 day
-
good first issue roadmap
Difficulty 3/5 Half a day Newbie friendliness 35/100
PhilanthroPy-Project/PhilanthroPy#357 ·
Maintainers usually reply within 1 day
All issues in PhilanthroPy-Project/PhilanthroPy
Similar issues
-
release
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
MichaelYcJo/SpecSeal#1535 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
valentinfrlch/ha-llmvision#769 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 75/100
daniel-ospina/tortoise#11937 · 1 comment ·
Maintainers usually reply within 1 day
-
good first issue help wanted python up-for-grabs
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
andrewsiah/agentswarm-data-tasks#238 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
cadence-workflow/cadence-ai-samples#175 ·
Maintainers usually reply within 1 day