JOSS submission: tracking issue for the four desk-reject gates (target 2026-12-07)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 1/100
- Issue type
- Documentation
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- git, github, python
- Domain
- documentation, release
Research direction
This is a submission-planning tracker, not an implementation task; its checklist links the actual work, including #124 and #125, and names paper.md, tests/test_no_network.py, and the benchmark CI artifact. Start by reviewing the linked issues and the four cited JOSS guidance pages. Done means the submission gates and checklist are complete; most work is assigned to separate issues, so this umbrella issue is not a suitable first contribution.
Written by the indexing model from the issue text.
Description
Status (2026-11-04)
The late-October target passed without a submission (there is no PhilanthroPy entry in openjournals/joss-reviews). New target: Monday 2026-12-07.
Schedule to get there:
- 2026-11-04 to 11-29: merge the open PRs a few days apart (#354, then #359, then #312 and #355), and keep every ISO week between 1 and about 12 commits by author date. No batch evenings, no whole-tree sweeps. Log the weekly measurement here each Monday (11-09, 11-16, 11-23, 11-30).
- From 2026-11-30: merge freeze, except fixes the submission itself needs.
- 2026-12-07: submission-day edits to
paper.md(date:, and the merged-PR and contributor count re-measured that morning), re-read thedraft-pdf.ymlPDF, paste the checks here, then submit. PyData Global runs 12-08 to 12-10, so submit on the 7th rather than letting it slip into that week. - Meanwhile, #126: pin #158. The third external issue and the second Discussion reply have to come from other people; don't push for them.
Where each gate stands now:
- Public history: pass.
- Iterative development: 379 commits on
main. By author month: Feb 21, Mar 32, Jul 28, Aug 161 (42.5%), Sep 87, Oct 47, Nov 3. The 323 target and the under-half August share both hold. By ISO week since 2026-10-01: W40 22, W41 9, W42 10, W43 6, W44 0, W45 3. The 2026-10-20 merge freeze in the plan was not held (merges continued to 2026-11-03), which is fine for this gate as long as the pace stays steady rather than bursty. - Research impact: pass. Real-data replication archived (
10.5281/zenodo.22050649), preprint on Zenodo (10.5281/zenodo.22665386), both cited inpaper.md(#203). The Results pages now cover KDD Cup 1998, cup98VAL, DonorsChoose and PSID. - Open-source practice: pass. Soft spot is #126: 2 external issues (#129, #357) of the 3 targeted, 1 external Discussion reply (#188) of 2, and #158 is not pinned.
Still owed on submission day, unchanged: paper.md:18 date: 21 August 2026, and paper.md:177 "thirty-five merged pull requests from eleven contributors", which gh pr list --state merged now puts higher. #116 was closed on 2026-09-09 but the sentence is still there, so this line is the tracker for it.
The last weekly measurement below is 2026-10-05; nothing has been logged since.
Umbrella issue for the JOSS submission. Nothing is implemented here; every box links to the issue
or PR that carries the work. Target submission: late October 2026, and the reason it is not
sooner is gate 2 below.
Sources, read against the live pages rather than recalled:
submitting ·
review criteria ·
reviewer checklist ·
the Jan 2026 AI policy.
The four desk-reject gates
| Gate | JOSS wording | Status |
|---|---|---|
| Public history | "public for more than six months prior to submission" | PASS. Public 2026-02-21; cleared 2026-08-21 |
| Iterative development | "sustained development over time (preferably months or years) rather than rapid, recent code generation" | AT RISK. See below |
| Research impact | "must be evidence that the software is being used for research" | FAIL today. #124 |
| Open-source practice | "lacking issues, pull requests, releases, tests, CI, documentation, or contribution guidelines" | PASS, with one soft spot: #126 |
Gate 2 is why the date is October, and it constrains how we merge
171 commits on main: 21 in February, 32 in March, zero in April, May and June, 28 in July,
90 in August. That is 53% of the project's history in one month, with a three-month hole in the
middle.
Consequences, and they are unintuitive:
- Merging is not free any more. Every merge this month pushes August's share up, on the exact
criterion JOSS desk-rejects for. - Take the open PRs a few days apart, ideally in September. Never another twenty-PR evening.
- Commit at a low steady rate through September and October. The #124 work naturally produces that,
which is convenient: the thing that closes gate 3 also closes gate 2. - No whole-tree churn. #91 (remove every em dash, 92 files) already spent that budget once.
Another mechanical sweep before submission inflates the recent-commit share for zero review
benefit.
Check it any Monday:
for m in 02 03 04 05 06 07 08 09 10; do
printf "2026-%s: %s\n" "$m" \
"$(git rev-list --count origin/main --since=2026-$m-01 --until=2026-$m-31T23:59)"
done
One thing to be conscious of rather than to fix: "rather than rapid, recent code generation" and
the now-mandatory AI usage disclosure point at the same profile, and an AI-assisted history with
half its commits in one month is that profile. The mitigation is that the disclosure landed in #103
is thorough, first-person, and specific about what was not generated. Do not shrink it.
Checklist
Phase A, the research-impact artifact. The only true blocker, and it needs nobody's permission.
- #124 KDD Cup 1998 fetcher, real-data leakage replication, docs page, Zenodo deposit
- (Zenodo,
10.5281/zenodo.22665386, 2026-09-08) A preprint that uses the library, framed as the finding rather than the software. Working
title: Whole-history feature aggregation inflates donor-propensity backtests more than
splitter choice does. SocArXiv or OSF Preprints needs no endorsement and mints a DOI; arXiv
stat.APneeds an endorsement if you have never posted there. This is what converts
"credible near-term significance" into "realized impact" - (#203) Rewrite
paper.md's Statement of need and Research impact statement on the real number - #83 the institutional user. Parallel, not a prerequisite. Strengthens the paper if it
lands during review
Phase B, what a reviewer actually checks.
- #125 cut and tag v0.7.0, publish to PyPI, archive to Zenodo. The version DOI goes in the
submission form - #7 publish the benchmark table as a reproducible CI artifact. Every AUC number in the paper,
the README and the benchmarks page is a performance claim, and the checklist asks whether
performance claims were confirmed - #114 / #123 the no-network claim, resolved in commit 0612dce on #123. The claim is now two
enforceable halves, and_NETWORK_ALLOWEDintests/test_no_network.pyis the documented
exemption point #124's fetcher adds one line to. Still needs merging - #113 merge-blocking CONTRIBUTORS/CHANGELOG check. #112 fixed the symptom; this is the cause,
and the checklist has an authorship-and-credit item - #116 (closed, but the work is still owed; see Status) re-verify the paper's merged-PR and contributor counts on the day of submission. They
have already moved from 13 to 17 - Add a real-data example to the docs once #124 lands. The checklist wants examples "ideally to
solve real-world analysis problems" and the quickstart is synthetic - Leave the twelve
good first issueitems open. An open tracker is evidence of practice.
An empty one reads worse
Phase C, submission mechanics.
- #126 post and pin the who's-using-this Discussion, and ask the five external contributors
whether they hit anything worth filing - Decide the track and say why in the submission notes. The AMC surface argues health/medical;
the propensity modelling and the fact that the State of the field section is entirely about
ecosystem ML packages argues social/behavioural, which is the recommendation - Name three non-conflicted suggested reviewers. Candidates sit around the packages the paper
cites (feature-engine, scikit-lego, mlxtend, pymc-marketing, MAPIE, crepes, scikit-uplift)
plus volunteers at https://reviewers.joss.theoj.org/ - Sign up as a JOSS reviewer at that same URL. Cheapest goodwill available, and reviewing is how
you meet reviewers - Disclose the upstream contribution history (MAPIE, pymc-marketing, sktime, statsforecast) in
the submission notes. Not a conflict under JOSS's definition, and disclosing beats a reviewer
discovering it - Submit at https://joss.theoj.org/papers/new
Explicitly not on the critical path
- #83, the institutional user. Valuable, slow, and no longer required.
- pyOpenSci presubmission (pyOpenSci/software-submission#337, now closed; not this repository's #337). Zero comments since 2026-08-02, and their published scope is
Geospatial and Education. The partnership would only save a second review. Do not wait on it. - JMLR MLOSS. Its submission requirements name "evidence of an active user community" as a
required cover-letter element, which is strictly harder than anything JOSS asks, and its
criteria want coverage "near 100%" against our 92% gate. After a JOSS acceptance, not before. - 1.0.0. JOSS needs a tagged archived release, not a major one. See #125.
Why the preparation is worth two extra months
Everything in openjournals/joss-reviews is permanently public, including a desk rejection, and
a desk reject carries a resubmit-in-six-months-or-more penalty. That asymmetry is the whole argument
for not submitting next week.
If it desk-rejects anyway
- SoftwareX (Elsevier), ~3000 words, no six-month or impact gate. APC ~$1000, waivers exist.
- JORS only if the rejection is specifically on scope. Otherwise it is a £824 duplicate.
- The preprint plus the Zenodo release, which Phase A produces regardless.
- And the better paper may not be the software paper. "Whole-history feature aggregation inflates
donor-propensity backtests by ~0.13 AUC while splitter choice is worth ~0.01, and a widely used
synthetic-data pattern lets a model beat its own Bayes ceiling" is a real contribution to a field
that mostly does not test for this. JAMIA Open, an AMIA symposium paper, or NVSQ, with the library
as the supplementary artifact. Phase A produces that paper's data as a byproduct, which is the
strongest argument for doing Phase A whatever JOSS decides.
- 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
-
docs: "How to add a CRM ingest reader" checklist for contributorsPossibly taken @IG-ABHINAV claimed this 1 day ago. Openbeginner documentation good first issue roadmap
Difficulty 2/5 Half a day Newbie friendliness 68/100
PhilanthroPy-Project/PhilanthroPy#342 · 3 comments · 1 assignee ·
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
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