Tracking: the components and interfaces of essapps, and how far each has got

Abierto Apto para principiantes
#155 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
62/100
Tipo de issue
Documentación
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python

Línea de trabajo

Empieza por las tablas de arquitectura de la issue, que enumeran componentes e interfaces, sus usuarios, su estado y las issues relacionadas. Compara las entradas con las issues referenciadas y el estado actual del proyecto, especialmente cuando la tabla menciona un archivo como data.md o form.py. Se considera terminado cuando el documento de seguimiento refleja con precisión el estado de cada elemento e incluye enlaces o ubicaciones.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Every box and arrow one would draw in an architecture diagram of essapps, with how far each has got. Items without an issue say "no issue".

Kind. C is a component. I is an interface. An interface gets a row only if it has a design of its own: it crosses a process or deployment boundary, or several implementations sit behind it. Other arrows are part of their component.

For. What needs the item: N notebook, G interactive GUI, B batch reduction, A automatic reduction, H hosted service. "all" means N G B A.

Status. mentioned, then idea (a concrete proposal exists), then prototype (runs, with known gaps, or a test fake only), then implemented (works in-process, with tests). † means only on the unmerged LoKI stack. ‡ means parked on 24-sans-batch.

Workflows

Item Kind What For Status Where
WorkflowSpec C Names a workflow's params and outputs all implemented #80, #118
Params language I What a request may give at each field all implemented #88, #140
Binding I Params in, outputs out; stage and driver variants all implemented #81
Pipeline and function bindings C Bind sciline pipelines and plain functions all implemented
Driver binding C Bind an accumulating workflow N G implemented #40
Binding checks C Test an author's promises all implemented #81
Serialized spec I A spec as data, for clients that do not import it H prototype #88; no reader yet
Spec identity I Which version of a spec a record ran all idea #80
LoKI package C Specs, bindings, and plots of LoKI all prototype† #24
Several detector banks C Reduce LoKI's nine banks, not one all mentioned #24
Other instrument packages C The same for other instruments all mentioned no issue
Instrument defaults C Usual values for fields such as bins G B A mentioned no issue

Client and backend core

Item Kind What For Status Where
Client API I One proposal's calls to one backend all implemented #81, #95
Request checks C Refuse a request, naming the field all implemented
History log and views C Append-only events, and state built from them all implemented
Durable history and restart C Log on disk; restart without rerunning G A H prototype #81, #151
Kept values C A value lives while something keeps it all implemented #123
Scheduler and workers C Run a request once its references are ready all implemented #61
Stages C Compute a template's fixed part once N B implemented #24: a failed stage cannot retry
Accumulators C Rows pushed, with a state that can be read N G implemented #40, #123
Provenance C The records and files behind a record all implemented
Software versions C Installed versions in provenance all mentioned #152
Change feed I Which records changed since a position G A H implemented† #148; no files or releases
Output description and cuts I describe and select= G H implemented† #149
Computed looks C A projection next to a value, with no record G H mentioned #149
Labels and members C Name sequences of records B A implemented #81
Templates and lookups C Fill a template per file, find related files N B A implemented #33

Files

Item Kind What For Status Where
File source I Resolve, list, watch, and describe files all implemented #57, #131
File metadata vocabulary I Kind and role of a file all prototype #153
Run number in a workflow I A workflow cannot learn a file's run number all mentioned #124
How a file gets its role C NICOS, SciCat, or file contents A mentioned #153, data.md
Folder source C One folder and a hand-filled table N G B prototype† #131
Folder scan C Metadata from the files, not from a table N G B mentioned no issue
Working folder C Choose or change the input folder in an app G B mentioned no issue
SciCat and /ess source C Files and metadata at ESS all idea #57, #131
Metadata caching C Do not re-read every file on each refresh G B idea no issue
New-file signal I Tell an app that a new run exists G A mentioned no issue
Store I Persist an output by record and name B A H implemented #152; thin
Real store C A store that is not the test fake B A H mentioned #152
Codec per output type I How an output type becomes a file G B A H mentioned #152
File writer C Write an output where a person chooses N G B mentioned #152
Layout on disk C Where results go, and how they are found B A H mentioned #152
Written file to source I A saved file appears in the pickers G B A idea story C2
Retention C Drop files by proposal, label, or age A H mentioned #152
Publisher I Output to a SciCat derived dataset G B A idea #152
SciCat widget C The person's publish dialog G B mentioned #152
SciCat credentials C Whose token, and how it arrives G B A mentioned #152

Shared UI core (no widget library)

Item Kind What For Status Where
Listing C Snapshot of records, labels, and what fits G B A implemented #95, #150
Component contract I refresh(listing) and show G B A prototype #150
Form state and rules C Field tree, unset values, missing fields G B idea #150; now in form.py
Form to frontend I Build a widget per field, and sync it G B idea #150
Field type reading C What a field's type allows G B implemented
Output rows and details C The list of outputs and their text G B A prototype #150; now in Panel
Record details C The text about a record G B A prototype #150; now in Panel
Provenance graph model C Nodes, edges, and layout G B A prototype #150; now in Panel
Submission outcome C Refusal and completion messages G B prototype #150; now in Panel
Record names C Labels that say which sample G B A idea #95, #24
Plot function I Outputs in, plopp figure out N G B A prototype† #149
Plot choice by shape C Which plot suits an array; sliders G B prototype† #149
General plots C Several chosen outputs on one plot G B prototype‡ #149
Fill form from a record C Show a record's params to edit G B implemented Form.set
Autofill C Offer the newest masks and centre G B mentioned no issue; against a rule in form.py
Saved configurations C Reopen or name earlier settings G B A mentioned no issue

Widget frontends

Item Kind What For Status Where
Panel frontend C Widgets, table, timer, and graph in Panel G B A prototype #150
ipywidgets frontend C The same in ipywidgets G B idea no issue
PyQt frontend C The same in PyQt G B mentioned no issue

Applications

Item Kind What For Status Where
Generic app C Forms, outputs, and records for any spec G prototype #24
Technique app C An app that knows SANS G B prototype‡ #24
Configured plots C Plots scientists make all the time G B A prototype† #149
Mask creation C Draw or edit masks on an image G mentioned no issue
Mask files C Save masks so MASKS can load them G B A mentioned no issue
Batch table and pairing C Rows of runs, paired by metadata B prototype‡ #33
Per-run tweak C Edit and resubmit one row B prototype‡ #24

Automatic reduction service

Item Kind What For Status Where
Trigger loop C New file to request A implemented #33, #68
Service process C Runs the loop 24/7 with local() A idea #151
Technique package loading I Specs and rules per technique A idea #151
Several proposals C One loop per proposal, or one for all A mentioned #151, #27
Configuration of a running service C Change the can without a restart A mentioned #151, #33
Rule status C What the rules did and why A mentioned #27, #151
Publishing with no frontend C Results reach SciCat unattended A idea #152

Hosted service

Item Kind What For Status Where
Transport and wire format I connect(), calls and values over HTTP H mentioned #27
Auth and proposal access C Who submits, and what they may read H mentioned #27
Client per user I Which client a user or session gets H idea no issue
Lease and memory cap C End vanished clients, bound their memory H idea #27
Cluster executor C Run on workers and Slurm; stop started work H idea #27
Environments C Which packages and versions are installed H mentioned no issue
Operations C Metrics, logs, and disk per proposal H mentioned no issue

ESS systems (not ours to build)

Item Kind What For Status Where
SciCat C Dataset catalogue all external #57, #152
/ess/raw and /ess/data C Files at ESS all external #131
NICOS C Writes runs, and may record their role A external #153
Slurm C The cluster H external #27
Lenguaje dominante
Python
Estrellas
0
Forks
1
Merge medio
15 h 40 min
PR fusionados (30 d)
59

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de scipp/essapps

Todos los issues de scipp/essapps

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.