Week-by-week checklist
A copyable timeline for getting to JOSS in about a month
This is the ambitious version of the journey — DOI + PyPI + Docker + JOSS in ~30 focused calendar days. Most people take longer. That’s fine. Use this as a template you can stretch to fit your actual schedule.
If you’re aiming for Level 0 only (DOI + citable archive, no PyPI or JOSS), stop after Week 1. If you’re aiming for Level 1 (installable + citable), stop after Week 2. Weeks 3-4 are Level 2 (JOSS paper).
Week 1 — Repo hygiene + Zenodo DOI (Level 0)
Goal: your code has a permanent DOI. Anyone can cite it.
End of Week 1 deliverable: a public GitHub repo with a Zenodo DOI badge in the README.
Week 2 — pip install + Docker (Level 1)
Goal: a stranger can pip install yourthing or docker run your image, and it works.
End of Week 2 deliverable: pip install yourthing works for strangers. GHCR image is public.
Week 3 — Tests + CI + docs (Level 2 prep)
Goal: green tests badge, real test coverage, JOSS-ready documentation.
End of Week 3 deliverable: repo has all the community-guidelines pieces. Tests + coverage badges are green.
Week 4 — paper.md + submit (Level 2)
Goal: JOSS paper drafted, PDF renders cleanly, form submitted.
End of Week 4 deliverable: JOSS submission acknowledged, in the review queue.
What happens next (Weeks 5-20-ish)
Not your daily work anymore, but plan for:
- Weeks 5-8: Editorial pre-check + reviewer assignment.
- Weeks 8-16: Active review on a GitHub issue in
openjournals/joss-reviews. Reviewers file checklist items; you iterate. - Weeks 16-20: Acceptance + JOSS DOI + your paper appears in Google Scholar within a couple of weeks of publication.
Total elapsed time from submission to publication: usually 2-6 months, dominated by the reviewer-assignment step.
If you’re behind schedule
The schedule above assumes ~2 hours a day of focused work. Realistic slippage:
- If you don’t already have a package structure, add a week for the notebook → package refactor.
- If your tests are non-trivial (network I/O, expensive fits, mixed OS behaviour), add a week.
- If your co-authors are in three time zones, expect the review round-trips in Week 4 to slip a week or more.
The most common slippage: discovering during Week 2 that your pyproject.toml doesn’t quite work on someone else’s machine because of a hidden native-library dependency, and spending 4 days debugging install paths. Budget for this by doing Week 2’s cross-machine install test as early as possible.
The 30-day version, ultra-compressed
If you truly want to submit in 30 calendar days and you already have working code:
- Days 1-3: Level 0 (repo hygiene + Zenodo DOI).
- Days 4-10: Level 1 (pyproject + PyPI + Docker + CI).
- Days 11-20: Tests + community-guidelines + docs.
- Days 21-28: Draft + circulate + polish
paper.md. - Days 29-30: Submit.
This assumes you don’t have to refactor your code structure. If you’re starting from “a folder of scripts I’ve been running for two years,” double every estimate.