Tracking: the components and interfaces of essapps, and how far each has got
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 62/100
- Loại issue
- Tài liệu
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- python
Hướng nghiên cứu
Bắt đầu với các bảng kiến trúc của issue, liệt kê các thành phần và giao diện, người dùng của chúng, trạng thái và các issue liên quan. Đối chiếu các mục với những issue được tham chiếu và trạng thái hiện tại của dự án, đặc biệt khi bảng nêu tên một tệp như data.md hoặc form.py. Công việc hoàn tất khi tài liệu theo dõi phản ánh chính xác trạng thái của từng mục và có liên kết hoặc vị trí.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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 | One workflow that takes a list of banks, plain or accumulating, combined before normalization; esssans does not do this yet | 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 apply |
C | Fill a template per file; a rule's function finds related files | N B A | implemented | #33, #160 |
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; a raw file's role narrows a picker and refuses nothing | all | prototype | #153, #159 |
| 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; scan_directory of ess-sans-widgets is a starting point, with a replaceable reader while file fields are not settled |
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 the application's function, which submits any number of requests | A | implemented | #33, #68, #160 |
| 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 |
- Ngôn ngữ chính
- Python
- Star
- 0
- Fork
- 1
- Merge trung bình
- 9 giờ 40 phút
- Pull request đã merge (30 ngày)
- 60
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của scipp/essapps
-
A number that is not finite is stored as None at a field that accepts NoneCó thể đã có người làm @jeevanabhi-r đã nhận 2 ngày trước. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
scipp/essapps#140 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
scipp/essapps#152 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Application components that do not depend on the widget libraryCó thể đã có người làm @SimonHeybrock đã nhận 2 ngày trước. Đang mở
scipp/essapps#150 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của scipp/essapps
Issue tương tự
-
[BUG]: Compliance rules never see Unity Catalog views as viewsCó thể đã có người làm @wagnercsantos đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
databrickslabs/ontos#1348 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
`forum_pr_poster` action will always return `none` when checking for pre-existing feedback threads, even if a feedback thread already exists.Có thể đã có người làm @pgmzeta đã nhận hôm nay. Đang mởE-Verified P-Major
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
goonstation/goonstation#28259 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
woonstadrotterdam/monumenten#70 ·
Maintainer thường phản hồi trong vòng 15 ngày
-
binding:python bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
The Browser tab fails with a Wayland error when Open Terminal runs from a Wayland desktop sessionĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
open-webui/open-terminal#210 ·