Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[QTI] Backfill all non-raw AssessmentItems to QTI items

Aperta
#6,007 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
30/100
Tipo di issue
Refactoring
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
api, database

Direzione di ricerca

Inizia leggendo la conversione riutilizzabile in #6003 e la doppia lettura transitoria dell’API in #6030. Progetta il backfill globale per convertire le righe legacy non-Perseus, rendere visibili gli errori e supportare riesecuzioni sicure; il completamento si verifica quando i test con fixture miste hanno esito positivo e l’API non ha più bisogno della doppia lettura.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

DEV: backend

❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.

Overview

Run the one-time global backfill converting every legacy AssessmentItem to type='QTI' + raw_data XML via #6003's conversion, then remove the API-layer dual-read.

Complexity: Medium
Target branch: unstable

Context
  • #6003 provides the reusable conversion.
  • #6030 wires it into the endpoint as a transitional API dual-read.
  • This issue makes that change permanent in the data.
  • A data-only backfill — no schema change — over a large table.
The Change
  • Backfill every legacy row to type='QTI' + raw_data XML via the #6003 conversion.
  • Leave perseus_question rows untouched.
  • Remove the API-layer dual-read (#6030) once the backfill completes.
Acceptance Criteria
  • After the backfill, every legacy row is type='QTI' with raw_data XML; only perseus_question rows remain unconverted
  • Rows that fail conversion are surfaced, not silently dropped
  • The backfill is resumable and safe to re-run
  • With the backfill complete, the API serves QTI directly without the dual-read
  • Tests cover the backfill over a mixed fixture

AI usage

Architecture decided with the maintainer across an iterative session: blanket QTI type with the item XML in raw_data; XSD-authoritative validation across all sources; a legacy→QTI global migration with an API-layer dual-read; ricecooker upload delegating to the AssessmentItem serializer; and a Perseus custom-interaction contract confirmed against the QTI 3.0 specification. Claude mapped the existing publish/validation/ricecooker code, proposed the breakdown, and drafted each issue; the maintainer steered every decision and reviewed throughout.

Lingua principale
Python
Stelle
191
Fork
308
Merge medio
2g 6h
PR unite (30g)
65

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di learningequality/studio

Tutte le issue di learningequality/studio

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.