Commit Graph

1455 Commits

Author SHA1 Message Date
cbc6bfaf02 Manager: also recognise exec.ErrNotFound as a "blender not found" error 2022-08-02 13:36:25 +02:00
8c43688fed Makefile: add publish-release-packages target
`make publish-release-packages` uploads the release packages for the
current version of Flamenco. Note that it does NOT build those, so run
`make release-packages` beforehand.
2022-08-02 13:06:08 +02:00
7b60acd801 Makefile: use variables to point to the webserver
This makes it easier to add more rules that also point to the same server
and directory on that server.

No functional changes.
2022-08-02 12:57:43 +02:00
6022f781d3 Website: add download page & links
Add links to download the latest version of Flamenco. Which version is
offered can be managed in `web/project-website/data/flamenco.yaml`.
2022-08-02 12:56:42 +02:00
beb302c2b4 Website: add new 'make' targets to the documentation 2022-08-02 12:05:27 +02:00
b06992a997 Website: start of a "get involved" page 2022-08-02 12:02:12 +02:00
2b11413b76 Website: reformat the "make targets" table
No textual changes.
2022-08-02 12:02:04 +02:00
2d6475a7e1 Web: make the "get the add-on" button actually do something
The button is now a link that leads to the add-on ZIP.
2022-08-02 11:04:11 +02:00
f3693b88f4 Web: show feedback when clicking the backend URL to copy it
The URL now briefly flashes in the primary color, to show that the click
was acted upon.
2022-08-02 11:03:39 +02:00
72b994db7d Web: show a "get the addon" call to action if there are no jobs
If there are no jobs in the database yet, show a "get the addon" call to
action. This includes the current API URL, which can be copied by clicking
on it.

There is no feedback yet that the copy took place, though.
2022-08-02 10:43:08 +02:00
2185d8b5ee Web: only show the task details when there is a job
The "select a task" text only makes sense when there is a task to be
selected, so if there is no selected job, don't even show that.
2022-08-02 10:41:57 +02:00
ea1bbdf95a Cleanup: web, reformat Vue component
Just applying the auto-formatting.
2022-08-02 10:41:05 +02:00
06d0c3133f Cleanup: reformatting of Vue components
Reformat Vue files with the "Vue.volar" formatter.
2022-08-02 09:34:18 +02:00
38501bac7c Cleanup: web, remove lang="js" from <script> tags
Everything is JavaScript.
2022-08-02 09:32:54 +02:00
98ae0b57d8 Web: prevent scrollbars when resizing the window
The scrollbars still appear for a split second, but then disappear.
2022-08-01 22:59:03 +02:00
28b92c2994 Web: fix scrollbars when toggling the footer 2022-08-01 22:51:30 +02:00
375c5ac3ac Web: fix scrollbar showing in task list column
The blocklist component also needs to wait two ticks before emitting the
"reshuffled" event (which triggers a resize of the tasks table).
2022-08-01 22:49:31 +02:00
e3e0968d88 Web: show task type in the task details
The task type was intended to be always shown, but a mistake in the field
name + a misunderstanding caused them to be always hidden.
2022-08-01 22:30:51 +02:00
b3370cdf0d Web: prevent error in task details when task is unassigned to worker 2022-08-01 22:29:43 +02:00
404dbc5be8 Web: allow removal of blocklist entries 2022-08-01 18:55:52 +02:00
11e5363d24 Manager: reject removal of empty list of blocklist entries
A request to remove an empty list of blocklist entries now results in a
400 Bad Request.
2022-08-01 18:55:33 +02:00
3b978ceda0 Cleanup: manager, name variable correctly
It was an old name from copy-pasted code, now it reflects the actual code.

No functional changes.
2022-08-01 18:55:08 +02:00
1469345f3a Manager: sort blocklist by worker name 2022-08-01 18:54:28 +02:00
023d392560 Web: resize the Tasks table after loading the job blocklist
Emit a 'reshuffled' event to let the job view resize the tasks table.
2022-08-01 18:44:50 +02:00
9d65f6f4de Web: use small font for job blocklist 2022-08-01 18:25:17 +02:00
b6d8882b8e Web: show job blocklist
The blocklist is now shown in the job details, in its own tab. The list
is only fetched when the tab is visible, and doesn't get dynamically
updated yet.
2022-08-01 18:24:01 +02:00
f3aab8611c Manager: include worker name when returning blocklist 2022-08-01 18:03:17 +02:00
1caa4c2a59 OAPI: regenerate code 2022-08-01 18:03:05 +02:00
e6f76f520b OAPI: include worker name in blocklist entries
To show the blocklist on the web interface, it's nice to identify workers
by their name and not just their UUID.
2022-08-01 18:02:21 +02:00
37477fc6bd Web: remove console.log calls
Remove a whole lot of `console.log()` calls. They were useful during
development, but not really suitable for production environments. Because
they also include (potentially large) objects, they can even slow down
the webapp itself.
2022-08-01 17:11:45 +02:00
e6b662b8cd README.md: remove most info from the README and direct to the website
The website (which is available in the sources as well) contains all the
information from the README already. Having only one source of information
is good for maintainability.
2022-08-01 16:56:40 +02:00
efff61c454 Website: add some documentation about the storage options
Basically it's "simple, efficient, isolated -- pick two".
2022-08-01 16:36:29 +02:00
1db1b06c9e Website: correct the OpenAPI commit guidelines
The OpenAPI-generated code no longer contains the git hash, so the docs
had to change for that.
2022-08-01 16:36:10 +02:00
fef3de28e1 Fix unit test
Fix unit test broken in rF449c83b9.

No functional changes.
2022-08-01 16:02:08 +02:00
642ef36778 Blender finder: fix compatibility with Windows Home
For some reason, calling `AssocQueryStringW` on Windows Home returns error
code 122, "The data area passed to a system call is too small", even when
the data area is large enough. Furthermore, the API actually describes that
in such cases `S_FALSE` is supposed to be returned, with `*pcchOut` set to
the required size. Because of this apparent violation of the documentation,
and because it just works, Flamenco now ignores this particular error and
just returns the obtained string.
2022-08-01 16:00:49 +02:00
350f4f60cb Worker: convert database interface to GORM
Convert the database interface from the stdlib `database/sql` package to
the GORM object relational mapper.

GORM is also used by the Manager, and thus with this change both Worker
and Manager have a uniform way of accessing their databases.
2022-08-01 14:29:14 +02:00
449c83b94a Manager: broadcast worker update after assigning task
The Manager now broadcasts a worker update to SocketIO clients when a
worker gets a new task assigned. This ensures the "current task" shown in
the worker details view is up to date.
2022-08-01 14:29:08 +02:00
cb1e991305 Bumped version to 3.0-dev1 2022-08-01 14:21:19 +02:00
eb0adc6407 make update-version: include more files in the version bump commit 2022-08-01 14:21:04 +02:00
a6c935a634 Fix T99421: Introducing an etag for job types
The etag prevents job submissions with old settings, when the job
compiler script has been edited. The etag is the SHA1 hash of the
`JOB_TYPE` dictionary (as defined by the JavaScript file). The hash is
computed in a way that's independent of the exact formatting in the
JavaScript file. Also the actual JS code itself is irrelevant, just the
`JOB_TYPE` dictionary is used.
2022-07-29 21:13:37 +02:00
48ca73f550 Refactor, manager: rename compilerForJobType to compilerVMForJobType
The function returns a `*VM`, which contains a compiler, and allows you
to run a compiler, but is not a compiler itself.
2022-07-29 14:26:54 +02:00
866513e06a Add-on: check connection with Flamenco on URL change
Whenever the URL to Flamenco Manager is updated, check it and report.

This required moving the 'ping manager' code into a separate function, as
calling an operator from an RNA update callback is not a good idea.
2022-07-29 14:25:47 +02:00
b1f13c47f7 Website: add some documentation for the shared storage
This still needs expanding.
2022-07-29 11:39:31 +02:00
0cca867195 Website: move job-compiler-scripts to job-types
The concept of "job types" is more important. The fact that they are
defined by scripts is secondary. I've also added more documentation about
the settings & task types.
2022-07-29 11:15:15 +02:00
139d635695 Website: add documentation about job settings
It's far from complete, but it's a start.
2022-07-29 11:04:27 +02:00
370f935f65 Simple-blender-render job: use absolute path for render_output_path
Blender cannot be told to only allow absolute path for an RNA property
(of type `string`, subtype `dir_path`), so as a workaround the final
`render_output_path` is now using `bpy.path.abspath()` to make the path
absolute.

This has as advantage that the render output path can be defined by artists
as a blendfile-relative path, and that it'll be resolved when submitting
the blend file.
2022-07-29 11:03:14 +02:00
764973f116 Cleanup: add-on, remove unused parameter
No functional changes.
2022-07-29 10:25:23 +02:00
8ddc03d6ef Add-on: evaluate visible job settings immediately
For each job setting, if it's visible and has an `eval` property, it is now
evaluated immediately when switching job types. This means that properties
like the frame range get filled in automatically.

If there is already a value, this process is skipped, in order to not
overwrite the user's choice.

This resolves a common issue where the render job was rejected because
the frame range was kept empty.
2022-07-29 10:25:02 +02:00
ca8a909e41 Add-on: refactor FLAMENCO_OT_submit_job.poll()
Refactor the `FLAMENCO_OT_submit_job.poll()` function to actually use the
`job_types.active_job_type()` function instead of reimplementing similar
logic.

No functional changes.
2022-07-29 10:10:44 +02:00
be1ddaa4eb Manager test: reduce timeout to practical value
The timeout was increased to aid debugging, but shouldn't have been
committed.
2022-07-29 09:59:54 +02:00