FEATURES: reorder by priority and add some new things

This commit is contained in:
Sybren A. Stüvel 2022-04-29 11:16:47 +02:00
parent cc58f0d81a
commit cbc8600d90

View File

@ -13,35 +13,48 @@ Note that list is **not** in any specific order.
- [x] Task Scheduler - [x] Task Scheduler
- [x] Unify command definition (type/parameters in persistence layer, name/settings in API layer) - [x] Unify command definition (type/parameters in persistence layer, name/settings in API layer)
- [x] Job status change handling - [x] Job status change handling
- [ ] Port the old 'fail-requested' task status handling code to the new Manager
- [ ] Task timeout monitoring
- [ ] Worker Blacklisting & failed task requeueing
- [ ] Worker timeout monitoring
- [x] Worker-assigned task re-queueing on sign-off - [x] Worker-assigned task re-queueing on sign-off
- [x] Variable replacement - [x] Variable replacement
- [x] Configuration file reading - [x] Configuration file reading
- [ ] Configuration provisioning support
- [x] Shaman integration - [x] Shaman integration
- [ ] Worker sleep schedule
- [ ] Web frontend for Worker management
- [ ] Web frontend for Job & Task management
- [ ] API: only allow valid job & task status changes. Currently any change is allowed by the API.
- [ ] Web frontend for configuration management
- [ ] Frontend authentication
- [x] Worker API authentication - [x] Worker API authentication
- [ ] User/Job Submission API authentication - [ ] Web frontend for Job & Task management
- [x] Jobs list
- [x] Job details
- [.] Job action buttons
- [.] Notification/status bar system
- [ ] Tasks list
- [ ] Task details
- [ ] Task action buttons
- [ ] Task log viewer
- [ ] Subscription system for job "detail+task" updates.
- [ ] Subscription system for task log updates.
- [ ] Filtering jobs, at least by status
- [ ] Filtering tasks, at least by status
- [ ] Web frontend for Worker management
- [ ] "Tabs" system + Vue Router support.
- [ ] Port the old 'fail-requested' task status handling code to the new Manager
- [ ] Task timeout monitoring
- [ ] Worker blocklisting & failed task requeueing
- [ ] Worker timeout monitoring
- [ ] Worker sleep schedule
- [ ] Last rendered image display - [ ] Last rendered image display
- [ ] Per-job last rendered image - [ ] Per-job last rendered image
- [ ] Support pausing jobs.
- [ ] Job "required specs", to match with certain workers.
- [ ] API: only allow valid job & task status changes. Currently any change is allowed by the API.
- [ ] Frontend authentication
- [ ] User/Job Submission API authentication
- [ ] Auto-removal of old Workers - [ ] Auto-removal of old Workers
- [ ] Shaman/Job settings: Distinction between "can be auto-deleted" jobs and "must be kept around" jobs. - [ ] Shaman/Job settings: Distinction between "can be auto-deleted" jobs and "must be kept around" jobs.
- [ ] Sending data upstream to Flamenco Overwatch - [ ] Job archival/deletion / task cleanup
- [ ] Job archival / task cleanup
- [ ] Caching of job compilers. Currently every operation (including "fetch job - [ ] Caching of job compilers. Currently every operation (including "fetch job
type info", which is done by the web interface whenever job details are shown) type info", which is done by the web interface whenever job details are shown)
will just parse the JS from disk again. It'll be better to only do this when will just parse the JS from disk again. It'll be better to only do this when
the file on disk changed. the file on disk changed.
- [ ] Split up OpenAPI-generated server code into an interface per tag. This'll help splitting up the rather large `Flamenco` struct into smaller pieces. - [ ] Split up OpenAPI-generated server code into an interface per tag. This'll help splitting up the rather large `Flamenco` struct into smaller pieces.
## Worker ## Worker
- [x] OpenAPI client that actually runs as a process - [x] OpenAPI client that actually runs as a process
@ -49,23 +62,26 @@ Note that list is **not** in any specific order.
- [x] Task executor - [x] Task executor
- [x] Command runner - [x] Command runner
- [x] Log uploader - [x] Log uploader
- [ ] POSIX signal handling (sleep/wake up)
- [x] Implement `frames-to-video` command. - [x] Implement `frames-to-video` command.
- [x] Implement `move-directory` command. - [x] Implement `move-directory` command.
- [x] Refactor CLI-running code by analyzing the current Blender and FFmpeg commands. - [x] Refactor CLI-running code by analyzing the current Blender and FFmpeg commands.
- [x] Re-queueing of task at shutdown of the main context (i.e. when pressing Ctrl+C). Since the context is closed, everything shuts down, but then it's too late to cleanly communicate to the Manager that the current task should be requeued. - [x] Re-queueing of task at shutdown of the main context (i.e. when pressing Ctrl+C). Since the context is closed, everything shuts down, but then it's too late to cleanly communicate to the Manager that the current task should be requeued.
- [ ] CLI option to override configured manager URL.
- [ ] Readability/writability tests
- [ ] Add check per task-type
- [ ] Allow workers to request blocklisting for certain job, with "reason" string.
- [ ] POSIX signal handling (sleep/wake up)
## Both ## Both
- [x] Worker registration & auto-reregistration - [x] Worker registration & auto-reregistration
- [x] Worker API authentication - [x] Worker API authentication
- [x] Worker sign on/off - [x] Worker sign on/off
- [ ] Worker status change management, including lazy status changes
- [x] Task status change handling - [x] Task status change handling
- [x] UPnP/SSDP for automatic Manager finding
- [ ] Worker status change management, including lazy status changes
- [ ] Worker test mode - [ ] Worker test mode
- [ ] Worker registration secret (to protect the Manager from arbitrary Workers registering) - [ ] Worker registration secret (to protect the Manager from arbitrary Workers registering)
- [x] UPnP/SSDP for automatic Manager finding
## Blender Add-on ## Blender Add-on
@ -73,10 +89,10 @@ Note that list is **not** in any specific order.
- [x] Job construction - [x] Job construction
- [x] BAT-packing - [x] BAT-packing
- [x] uploading to Shaman - [x] uploading to Shaman
- [ ] User authentication
- [x] Editable job names (for rendering multiple jobs from the same filename) - [x] Editable job names (for rendering multiple jobs from the same filename)
- [ ] User authentication
- [ ] Add `options={'HIDDEN'}` to the Flamenco RNA properties. - [ ] Add `options={'HIDDEN'}` to the Flamenco RNA properties.
- [ ] Add eTag-like checksum to the job types. The aim is to prevent artists from sending in a new job with an old job. This can happen when the job type is changed on the Manager, but in Blender the "refresh" button wasn't pressed yet. This should only cover the job settings, not the rest of the compiler script. - [ ] Add eTag-like checksum to the job types. The aim is to prevent artists from sending in a new job with an old job type. This can happen when the job type is changed on the Manager, but in Blender the "refresh" button wasn't pressed yet. This should only cover the job settings, not the rest of the compiler script.
- [ ] Frame Range: allow automatically syncing with scene frame start/end. - [ ] Frame Range: allow automatically syncing with scene frame start/end.
- [ ] Don't take output settings from the current scene, but have separate settings for Flamenco. To be fleshed out still. - [ ] Don't take output settings from the current scene, but have separate settings for Flamenco. To be fleshed out still.
@ -85,3 +101,9 @@ Note that list is **not** in any specific order.
- [ ] Notification system to push "job done" messages to. Ideally would be in a form/shape that allows sending a message to Rocket.Chat, Matrix, Telegram, Discord, email, webbrowser, push URL-encoded/JSON/XML to some URL, stuff like that. Idea by Dan McLaughlin. - [ ] Notification system to push "job done" messages to. Ideally would be in a form/shape that allows sending a message to Rocket.Chat, Matrix, Telegram, Discord, email, webbrowser, push URL-encoded/JSON/XML to some URL, stuff like that. Idea by Dan McLaughlin.
- [ ] Notification client inside Blender itself, so that you get a message when your job is done. - [ ] Notification client inside Blender itself, so that you get a message when your job is done.
- [ ] Separate the OpenAPI definition of Shaman from the rest of Flamenco Manager. That way a part of BAT can also use the code generator. It also is the first step towards running Shaman as a standalone service. - [ ] Separate the OpenAPI definition of Shaman from the rest of Flamenco Manager. That way a part of BAT can also use the code generator. It also is the first step towards running Shaman as a standalone service.
- [ ] Web frontend for configuration management
- [ ] Configuration provisioning support
- [ ] Sending data upstream to Flamenco Overwatch
- [ ] Video preview of jobs, with black frames for unrendered frames.
- [ ] "Manual approval" task between low-quality/preview renders and rendering the final quality
- [ ] Grid view of jobs / tasks, showing the latest-rendered image/video.