Skip to content

Commit cbcd4b7

Browse files
committed
docs: add JOSS paper and v0.6.1 plan
1 parent ef2d0db commit cbcd4b7

9 files changed

Lines changed: 373 additions & 71 deletions

File tree

CITATION.cff

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ message: "If you use this software, please cite it as below."
33
authors:
44
- family-names: Addyman
55
given-names: Caspar
6-
orcid: https://orcid.org/0000-0003-0001-9548
7-
title:InfantLab/video-annotation-viewer: v0.3.0: VideoAnnotator runner & viewer web app
8-
version: v0.3.0
9-
date-released: 2025-08-26
6+
orcid: https://orcid.org/0000-0003-0001-9548
7+
title: "Video Annotation Viewer"
8+
version: 0.6.0
9+
date-released: 2025-12-15
10+
repository-code: "https://github.com/InfantLab/video-annotation-viewer"
11+
url: "https://github.com/InfantLab/video-annotation-viewer"
12+
license: MIT

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<div align="center">
22
<img src="public/icon-64x64.png" alt="Video Annotation Viewer Icon" width="64" height="64">
3-
<h1>Video Annotation Viewer v0.4.0</h1>
3+
<h1>Video Annotation Viewer v0.6.0</h1>
44
</div>
55

66
[![TypeScript 5](https://img.shields.io/badge/TypeScript-5-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
@@ -21,6 +21,10 @@
2121

2222
Advanced multimodal video annotation analysis tool for both **reviewing VideoAnnotator pipeline outputs** and **creating new annotation jobs**. Features synchronized pose detection, speech recognition, speaker diarization, and scene detection visualization with integrated job management.
2323

24+
JOSS submission prep (targeting v0.6.1) lives in:
25+
- `paper/paper.md`
26+
- `docs/development/ROADMAP_v0.6.1.md`
27+
2428
> Companion processing pipeline: [VideoAnnotator](https://github.com/InfantLab/VideoAnnotator)
2529
2630
## Overview

docs/JOSS_BUILD.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Building the JOSS paper locally
2+
3+
JOSS papers are compiled with the Open Journals toolchain (Pandoc via `openjournals/inara`).
4+
5+
## Expected files
6+
7+
- `paper/paper.md`
8+
- `paper/paper.bib`
9+
10+
## Option A: Docker (recommended)
11+
12+
From the repository root:
13+
14+
```bash
15+
docker run --rm \
16+
--volume $PWD/paper:/data \
17+
--env JOURNAL=joss \
18+
openjournals/inara
19+
```
20+
21+
On success, `paper/paper.pdf` will be created next to `paper/paper.md`.
22+
23+
## Option B: GitHub Action
24+
25+
Open Journals provides a GitHub Action for PDF generation. If we add it later, the output PDF will appear as a workflow artifact in the Actions tab.
26+
27+
## Notes
28+
29+
- If you are on Windows PowerShell, `$PWD` is still supported, but Docker volume path handling may differ depending on your Docker installation.
30+
- The compilation step is sensitive to YAML metadata formatting and missing citations; if compilation fails, check the frontmatter in `paper/paper.md` and the citekeys in `paper/paper.bib`.

docs/development/ROADMAP_v0.6.0.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
# Video Annotation Viewer v0.6.0 Roadmap
1+
# Video Annotation Viewer v0.6.0 Roadmap (Superseded)
2+
3+
> This roadmap has been superseded by [ROADMAP_v0.6.1.md](./ROADMAP_v0.6.1.md).
4+
> v0.6.0 was released in December 2025; the active JOSS release implementation plan is v0.6.1.
25
36
**Theme:** JOSS Paper & Public Release
47
**Status:** 📋 PLANNED

docs/development/ROADMAP_v0.6.1.md

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
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

docs/joss.md

Lines changed: 5 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,8 @@
1-
---
2-
title: "Video Annotation Viewer: an interactive web application for exploring, comparing, and auditing behavioral video annotations"
3-
tags:
4-
- visualization
5-
- web application
6-
- scientific tooling
7-
- behavioral science
8-
- reproducibility
9-
authors:
10-
- name: Caspar Addyman
11-
orcid: 0000-0000-0000-0000
12-
affiliation: 1
13-
- name: Irene Uwerikowe
14-
affiliation: 1
15-
- name: Jeremiah (Jerry) Ishaya
16-
affiliation: 1
17-
- name: Daniel Stamate
18-
affiliation: 2
19-
- name: Mark Tomlinson
20-
affiliation: 1
21-
affiliations:
22-
- name: Institute for Life Course Health Research, Department of Global Health, Stellenbosch University, South Africa
23-
index: 1
24-
- name: Department of Computing, Goldsmiths, University of London, United Kingdom
25-
index: 2
26-
date: 27 August 2025
27-
bibliography: paper.bib
28-
---
1+
# JOSS paper draft (moved)
292

30-
# Summary
3+
The canonical JOSS submission files are now located at:
314

32-
**Video Annotation Viewer** is a lightweight web application for *visualizing, filtering, and comparing* annotations overlaid on video. It targets lab workflows where researchers need to audit automated outputs, align them with human judgments, and communicate findings. The Viewer:
5+
- `paper/paper.md`
6+
- `paper/paper.bib`
337

34-
- plays videos with **overlayed tracks** (e.g., landmarks, gaze on/off, bounding boxes, utterance spans);
35-
- provides **timelines, filters, and side-by-side comparisons** across multiple runs or conditions;
36-
- reads standardized JSON/CSV outputs (including those from **VideoAnnotator**) and exports selected segments, screenshots, or summary tables.
37-
38-
# Statement of need
39-
40-
When automated pipelines scale up, researchers must still *inspect and trust* what detectors produced—especially where constructs are subjective, culturally variable, or ethically sensitive. Visual inspection and efficient comparison improve reliability, uncover edge cases, and make downstream validation more efficient. Prior discussions of the “measurement gap” in large-scale observational research emphasize that scalable automation must be paired with *interpretable review* tools to be credible and useful.
41-
42-
The Viewer addresses this by providing a focused, domain-agnostic interface: load a folder or manifest of videos + annotations; scrub, filter, and compare; export the evidence. It is not a monolithic analysis suite; it is the *inspection lens* researchers can adopt irrespective of their chosen detectors/models.
43-
44-
# Functionality
45-
46-
- **Overlayed playback.** Draw tracks and events (e.g., facial AUs, poses, segments) on the video; toggle layers; adjust thresholds.
47-
- **Timeline & filters.** Zoomable timelines, text search over events, and filters by detector, label, confidence, or time window.
48-
- **Comparison.** Side-by-side view of (a) different models on the same video or (b) the same model on different videos/conditions.
49-
- **Review & export.** Bookmark moments, export stills or CSV summaries, and generate minimal “review packets” for human raters.
50-
- **Interoperability.** Reads the standardized outputs from *VideoAnnotator* but accepts any tool that emits timestamped events/tracks.
51-
52-
# Design & architecture
53-
54-
- **Backend tasks (optional).** If configured, the Viewer can submit jobs to a running VideoAnnotator service to process new videos and display results when ready.
55-
- **Decoupled front end.** Modern web stack with stateless reading of manifest + annotation files; no database required for local use.
56-
- **Reproducibility.** View-state can be serialized (e.g., selected layers, thresholds, time range) for sharing exact audit contexts with collaborators.
57-
58-
# Validation and usability
59-
60-
We include demo manifests with short clips and annotations to exercise overlays, comparisons, and exports, supporting lab onboarding and smoke testing. The tool is designed to support expert review workflows where automated outputs are checked against human judgments before broader use in research or practice. :contentReference[oaicite:6]{index=6}
61-
62-
# Acknowledgements
63-
64-
We thank colleagues across behavioral research communities who emphasized the need for transparent *review tools* to complement automated pipelines and bridge the gap between scalable coding and expert interpretation.
65-
66-
# References
67-
68-
*References are provided in `paper.bib` (visual analytics for behavioral data, auditability in ML, and prior work on observational methods that motivate inspection tools).*
8+
This file is retained as a pointer for historical context.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"build": "vite build",
1414
"build:dev": "vite build --mode development",
1515
"lint": "eslint .",
16+
"lint:strict": "eslint . --max-warnings 0",
1617
"preview": "vite preview",
1718
"test": "vitest",
1819
"test:ui": "vitest --ui",

0 commit comments

Comments
 (0)