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.