|
| 1 | +# Video Annotation Viewer v0.6.1 Roadmap (JOSS Submission Release) |
| 2 | + |
| 3 | +**Theme:** JOSS Paper + Release Readiness (No New Features) |
| 4 | + |
| 5 | +**Status:** 📋 PLANNED |
| 6 | + |
| 7 | +**Target Window:** As soon as VideoAnnotator **v1.4.2** is tagged/released (Dec 2025–Jan 2026) |
| 8 | + |
| 9 | +**Previous Version:** v0.6.0 (Job Results Viewer + Artifacts ZIP support — 2025-12-15) |
| 10 | + |
| 11 | +--- |
| 12 | + |
| 13 | +## 🎯 Overview |
| 14 | + |
| 15 | +v0.6.1 is a **documentation + release process** release to support a **JOSS submission** for Video Annotation Viewer (vav), coordinated with the VideoAnnotator server **v1.4.2** release. |
| 16 | + |
| 17 | +This roadmap is a **full implementation plan**: it lists concrete deliverables, owners, acceptance criteria, and the release steps required to submit to JOSS. |
| 18 | + |
| 19 | +### Scope constraints (non-negotiable) |
| 20 | + |
| 21 | +- **No new user-facing features** unless they are required to make existing claims verifiable for reviewers. |
| 22 | +- **CI improvements only**: improve stability/“scores” of existing CI checks; do not add new mandatory quality gates. |
| 23 | +- **Server coordination first**: we will not cut v0.6.1 until the server’s v1.4.2 tag/contract is available. |
| 24 | + |
| 25 | +--- |
| 26 | + |
| 27 | +## ✅ Current State (Dec 19, 2025) |
| 28 | + |
| 29 | +- App is already at **v0.6.0** (see `package.json` + `CHANGELOG.md`). |
| 30 | +- Lint/typecheck are currently clean (`npm run lint:strict`, `npx tsc --noEmit`). |
| 31 | +- JOSS draft exists at `docs/joss.md`, but **JOSS submission requires `paper.md` + bibliography** and the draft currently: |
| 32 | + - references `paper.bib` that does not exist |
| 33 | + - contains a stray `:contentReference[...]` token that likely breaks compilation |
| 34 | + |
| 35 | +--- |
| 36 | + |
| 37 | +## 📦 Workstreams |
| 38 | + |
| 39 | +### 1) JOSS paper & submission artifacts 📄 (Owner: Docs) |
| 40 | + |
| 41 | +**Goal:** Have a paper that compiles in the Open Journals toolchain and a repository that satisfies the JOSS reviewer checklist. |
| 42 | + |
| 43 | +#### 1.1 Paper files (blocking) |
| 44 | +- [ ] Create `paper/` folder |
| 45 | +- [ ] Move/rename `docs/joss.md` → `paper/paper.md` |
| 46 | +- [ ] Create `paper/paper.bib` |
| 47 | +- [ ] Remove compilation-breaking tokens (e.g., `:contentReference[...]`) |
| 48 | +- [ ] Replace placeholder references with real citations and in-text citekeys (e.g., `[@key]`) |
| 49 | +- [ ] Validate paper length stays within JOSS guidance (250–1000 words) |
| 50 | +- [ ] Document and run the local paper compilation step (see `docs/JOSS_BUILD.md`) |
| 51 | + |
| 52 | +**Acceptance criteria:** `paper/paper.md` + `paper/paper.bib` compile successfully via the local JOSS build procedure in `docs/JOSS_BUILD.md`. |
| 53 | + |
| 54 | +#### 1.2 Repo metadata (blocking) |
| 55 | +- [ ] Update `CITATION.cff` (version, release date, title, author ORCIDs if available) |
| 56 | +- [ ] Ensure `LICENSE` is present and OSI-approved (already present; verify no contradictions) |
| 57 | +- [ ] Ensure `README.md` reflects current version and reviewer-facing quickstart (see Workstream 2) |
| 58 | + |
| 59 | +**Acceptance criteria:** JOSS reviewer can find how to cite, how to install/run, and what the software does within 5 minutes. |
| 60 | + |
| 61 | +#### 1.3 JOSS submission checklist mapping |
| 62 | +Add a short checklist mapping in this repo (either in this roadmap or a dedicated `docs/JOSS_CHECKLIST.md`) covering: |
| 63 | +- [ ] Paper present (`paper/paper.md`, `paper/paper.bib`) |
| 64 | +- [ ] License present (`LICENSE`) |
| 65 | +- [ ] Citation metadata present (`CITATION.cff`) |
| 66 | +- [ ] Installation instructions present (README) |
| 67 | +- [ ] Tests runnable locally (README + `docs/TESTING_GUIDE.md`) |
| 68 | +- [ ] Archive DOI minted for the tagged release (Zenodo) |
| 69 | + |
| 70 | +--- |
| 71 | + |
| 72 | +### 2) Documentation: “Reviewer journey” 📚 (Owner: Docs + Client) |
| 73 | + |
| 74 | +**Goal:** A reviewer can clone, run, and verify core claims quickly. |
| 75 | + |
| 76 | +- [ ] Update `README.md` header/version references (currently stale) |
| 77 | +- [ ] Add a short **Local Run** section: |
| 78 | + - install deps |
| 79 | + - run dev server |
| 80 | + - open the app |
| 81 | +- [ ] Add a short **Connect to VideoAnnotator** section: |
| 82 | + - required env vars (`VITE_API_BASE_URL`, `VITE_API_TOKEN`) and localStorage fallbacks |
| 83 | + - expected default server URL |
| 84 | +- [ ] Update `docs/CLIENT_SERVER_COLLABORATION_GUIDE.md` to the v1.4.2 contract (endpoints, auth, artifacts) |
| 85 | +- [ ] Update `docs/TESTING_GUIDE.md` to current scripts and CI expectations |
| 86 | + |
| 87 | +**Acceptance criteria:** Following docs, a reviewer can (a) run the UI locally, and (b) either load demo artifacts or connect to a running v1.4.2 server. |
| 88 | + |
| 89 | +--- |
| 90 | + |
| 91 | +### 3) CI health (“scores”) ✅ (Owner: Client) |
| 92 | + |
| 93 | +**Goal:** Improve reliability of existing CI checks without changing which checks are required. |
| 94 | + |
| 95 | +Current CI behavior (reference): |
| 96 | +- Required: lint + unit tests |
| 97 | +- Optional (non-blocking): coverage, e2e, lighthouse |
| 98 | + |
| 99 | +Planned improvements: |
| 100 | +- [ ] Reduce flakiness in existing Playwright smoke tests (no new tests required) |
| 101 | +- [ ] Stabilize Lighthouse CI runs (reduce transient failures) |
| 102 | +- [ ] Document a simple “CI score” metric (e.g., % green over last N runs) |
| 103 | + |
| 104 | +**Acceptance criteria (CI score):** Over the **last 10 runs on `main`**, optional jobs (`e2e`, `lighthouse`, `coverage`) are green in **≥80%** of runs, with failures triaged and documented. |
| 105 | + |
| 106 | +--- |
| 107 | + |
| 108 | +### 4) Server-team coordination (VideoAnnotator v1.4.2) 🔁 (Owner: Server + Client) |
| 109 | + |
| 110 | +This section is intended to be shareable with the VideoAnnotator server team. |
| 111 | + |
| 112 | +**Blocking asks for the server team:** |
| 113 | +- [ ] Publish/tag **VideoAnnotator v1.4.2** (or confirm final tag name/date) |
| 114 | +- [ ] Provide a versioned **OpenAPI spec** for that tag (or confirm where to fetch it) |
| 115 | +- [ ] Confirm artifacts/results bundle expectations: |
| 116 | + - ZIP includes source video |
| 117 | + - stable directory structure and filenames (or document variability) |
| 118 | + - stable metadata keys for pipeline ID, parameters, and versions |
| 119 | +- [ ] Confirm auth + CORS expectations for local reviewer runs (token format, headers, allowed origins) |
| 120 | + |
| 121 | +**Client-side follow-ups (once server tag exists):** |
| 122 | +- [ ] Validate the viewer against v1.4.2 (manual smoke + documented steps) |
| 123 | +- [ ] Update any pinned OpenAPI snapshots and compatibility notes |
| 124 | + |
| 125 | +**Acceptance criteria:** We can state a clear compatibility line in release notes: “v0.6.1 supports VideoAnnotator v1.4.2”. |
| 126 | + |
| 127 | +--- |
| 128 | + |
| 129 | +## 📋 Development Phases |
| 130 | + |
| 131 | +### Phase 1: Paper packaging + server contract (Week 1) |
| 132 | +- [ ] Create `paper/` structure and bibliography |
| 133 | +- [ ] Remove paper compilation blockers |
| 134 | +- [ ] Draft server coordination asks and confirm v1.4.2 tag timeline |
| 135 | + |
| 136 | +**Milestone:** Paper compiles locally; server tag plan confirmed. |
| 137 | + |
| 138 | +### Phase 2: Documentation refresh + CI stabilization (Weeks 2–3) |
| 139 | +- [ ] Refresh README + key docs for reviewer journey |
| 140 | +- [ ] Improve CI score for optional jobs (stability only) |
| 141 | + |
| 142 | +**Milestone:** Docs are reviewer-ready; CI optional jobs mostly green. |
| 143 | + |
| 144 | +### Phase 3: Release + archive + submit (Week 4) |
| 145 | +- [ ] Bump version to v0.6.1 + update changelog |
| 146 | +- [ ] Tag release + GitHub release notes |
| 147 | +- [ ] Archive tagged release via Zenodo and obtain archive DOI |
| 148 | +- [ ] Submit to JOSS and start review |
| 149 | + |
| 150 | +**Milestone:** v0.6.1 is tagged and archived; JOSS submission created. |
| 151 | + |
| 152 | +--- |
| 153 | + |
| 154 | +## 🎯 Success Criteria |
| 155 | + |
| 156 | +### Must-have (blocking v0.6.1 release) |
| 157 | +- [ ] `paper/paper.md` + `paper/paper.bib` compile successfully |
| 158 | +- [ ] `README.md` provides a reviewer-friendly run path |
| 159 | +- [ ] `CITATION.cff` is accurate for v0.6.1 |
| 160 | +- [ ] VideoAnnotator server **v1.4.2** is tagged/released and compatibility statement is documented |
| 161 | + |
| 162 | +### Must-have (blocking JOSS submission) |
| 163 | +- [ ] v0.6.1 is tagged and archived (Zenodo DOI) |
| 164 | +- [ ] Paper references the archived DOI (once available) |
| 165 | + |
| 166 | +### CI score goals (non-blocking but tracked) |
| 167 | +- [ ] Optional CI jobs are green ≥80% over last 10 runs on `main` |
| 168 | + |
| 169 | +--- |
| 170 | + |
| 171 | +## 🚫 Out of scope |
| 172 | + |
| 173 | +- New viewer features |
| 174 | +- Major UI redesigns |
| 175 | +- New mandatory test gates |
| 176 | +- Major performance/architecture work |
| 177 | +- Full accessibility compliance (track separately) |
| 178 | + |
| 179 | +--- |
| 180 | + |
| 181 | +## 🔧 Release checklist (operator steps) |
| 182 | + |
| 183 | +- [ ] Update version to `0.6.1` and add release notes to `CHANGELOG.md` |
| 184 | +- [ ] Run locally: `npm run lint:strict`, `npx tsc --noEmit`, `npm run test:run` |
| 185 | +- [ ] Build: `npm run build` |
| 186 | +- [ ] Tag `v0.6.1` and create GitHub release |
| 187 | +- [ ] Confirm Zenodo archive DOI minted from the `v0.6.1` tag |
| 188 | +- [ ] Submit to JOSS (repository URL, tagged release URL, archive DOI, paper) |
| 189 | + |
| 190 | +--- |
| 191 | + |
| 192 | +**Document Version:** 1.0 |
| 193 | + |
| 194 | +**Created:** 2025-12-19 |
| 195 | + |
| 196 | +**Status:** 📋 Planning — JOSS submission prep for v0.6.1 |
0 commit comments