This just changes the version comments in the generated files. Now they're
consistent with the version of sqlc tracked in go.mod.
No functional changes.
Use `go run ./cmd/sqlc-export-schema` to recreate the Manager's
`schema.sql` file. This way it is ensured that the sqlc code generator
sees the actual database schema as created by Goose.
Instead of needing to install Goose separately, the Makefile will now just
run `go tool goose`. The Go tooling automatically takes care of downloading
and building.
This also pulled in a few upgrades to our packages.
Upgrade `golang.org/x/tools` from 0.23.0 to 0.36.0, which pulled in some
other upgrades as well. This fixes an issue building mage:
```
# golang.org/x/tools/internal/tokeninternal
../../go/pkg/mod/golang.org/x/tools@v0.23.0/internal/tokeninternal/tokeninternal.go:64:9: invalid array length -delta * delta (constant -256 of type int64)
Error: error compiling magefiles
```
Longer names could get rewrapped, but there is not enough vertical space
for this. Now rewrapping is prevented. Of course a very long name can still
cause layout issues, but at least now slightly-long names work fine.
Add a new "Settings" view, to edit the Flamenco Manager configuration
via the web interface. Saving the form will write directly to
`flamenco-manager.yaml`. Depending on how they are used internally by
Flamenco Manager, some settings take effect immediately; most require
a restart of the Manager process, though.
Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104399
Reviewed-by: Sybren A. Stüvel <sybren@blender.org>
By using the flexbox layout model better, I could remove the `<div
class="align-right">` elements. And by adding a more visual border and
shadow, the popover looks good without having its height set explicitly.
This in turn makes it look good also when it's wrapping due to a small
screen size.
Add a "Select Preceding Jobs" button to the job table button bar.
Users can select a job (or multiple jobs) and click "Select Preceding
Jobs" which will then select all jobs with an updated timestamp that
precedes the selected job(s) updated timestamp.
Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104418
Reviewed-by: Sybren A. Stüvel <sybren@blender.org>
Instead of setting `margin-left` on all but the first button, use the
`gap` property to set the inter-button gap. This works properly when
buttons rewrap.
Add the following features:
- `Ctrl + Click` or `Cmd + Click` to toggle selection of additional workers
- `Shift + Click` to select a range of additional workers
- Ability to perform `Shutdown`, `Send To Sleep`, and `Wake Up` actions on multiple workers concurrently
- Notifications on how many workers successfully/failed to have an action performed
Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104395
Reviewed-by: Sybren A. Stüvel <sybren@blender.org>
Decreased the heading size for Duration section to avoid competing
with the Definitions heading to respect the nesting hierarchy. Made a
few spacing tweaks and word additions.
Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104420
Reviewed-by: Sybren A. Stüvel <sybren@blender.org>
The unit test was using a mocked "now" in a hardcoded timezone (UTC+2),
while the code under test was actually using the local timezone of the
computer.
Also the schedule computations are now explicitly only in local time.
Since the introduction of a `.gitattributes` file, tooling (like Gitea)
is aware of which files are generated. This means that all
OpenAPI-related changes (`pkg/api/flamenco-openapi.yaml`, re-generated
code, and changes to the implementation) can be commited together.
The downside is that tooling that is not aware of `.gitattributes` will
still show a big mix of hand-crafted and generated changes. The upside
is that each commit brings Flamenco from a valid, runnable state to
another valid, runnable state. This helps greatly when investigating
history (like bisecting) to find the source of a bug.
Add a PUT method for `/api/v3/configuration/file`, which entirely
replaces `flamenco-manager.yaml` with the received JSON payload. This
will be used in the future to store configuration edited in the web
frontend.
Ref: #99426
Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104406
When an absolute path is used for the manager-local storage, use it
as-is. Before this, it would always be taken as relative to the manager
executable.
Take the same approach for Windows as for other platforms, so that the
commands in the Makefile are more similar (even though the ZIP for Windows
doesn't contain everything in a single directory, like the tarballs do).
This will make it easier to adjust things for all platforms later.
If the dir doesn't exist, sqlite will come back with a cryptic error
message "unable to open database file: out of memory (14)". Better to
just create it.
Take the release cycle from the `RELEASE_CYCLE` variable in the Makefile,
instead of parsing `VERSION`.
For alpha/beta/rc/release this doesn't matter, it was parsed correctly.
But other suffixes were all marked as "release", which wasn't correct.
Add JSON tags to the worker configuration structs. This way, the config
is converted to JSON the same as it is to YAML, which is reflected in how
the loaded configuration is logged at startup.
I'm doing another SIGGRAPH talk about Flamenco, and it helps to have a
page on flamenco.blender.org to send people to.
It directs to my own website, as then I can use syncthing to control its
contents while I'm at the conference. Not needing access to the Blender
infrastructure seems safer to me.
Most of the definitions are based on the documentation in
`internal/manager/config/config.go` or inferred by labels and
descriptions from Flamenco v2 config pages.
Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104400
Issue likely began after 7b31eba8d7614e82cfcc4583e1dd3c2f40f87944 as
it was an issue with header not being properly positioned.
Just needed to add `header-L` and `header-R` to `grid-template-areas`
and adjust the rest accordingly, and fix a class name typo.
Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104413
Reviewed-by: Sybren A. Stüvel <sybren@blender.org>
Raise the log level from DEBUG to INFO, as it's quite important to be
explicit about which configuration file is loaded. Also ensure that the
file path is made absolute, so that it's again more explicit.
Add the following features:
- `Ctrl + Click` or `Cmd + Click` to toggle selection of additional jobs
- `Shift + Click` to select a range of additional jobs
- Ability to perform `Pause`, `Cancel`, `Requeue`, and `Delete` actions on multiple jobs concurrently
- Notifications on how many jobs successfully/failed to have an action performed
Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104391
Add a custom `time.Duration` wrapper that can be marshalled to JSON as
well. Go's built-in marshaller just treats it as an `int64` and
therefore the values are nanoseconds. This new wrapper keeps the JSON
representation the same as the YAML marshaller (which uses the
`time.Duration.String()` function).
In preparation for !104406.
Add a `Worker` column to the Job Tasks Table. This lets artists quickly
visualize on which machine a task is currently running, giving better
insights on worker utilization, as well as better expectations on how
long a task might take to finish when running Flamenco on a Renderfarm
made of different slow / fast workers.
Similarly to the Task Details panel for the "Assigned To" field
`LinkWorker` Vue element, the cell element contains an hyperlink to the
corresponding worker in the Workers page. Since the Worker page also
contains a backlink to the currently running task, this lets user
quickly navigate between the two pages, as seen in the screen recording
demo below.
Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104402
Reviewed-by: Sybren A. Stüvel <sybren@blender.org>
Remove the "extra checkout paths" feature in order to simplify the
configuration file, and thus also the upcoming web interface to edit it.
The "extra checkout paths" feature was added to aid in transition from
the Flamenco v2 shaman system to the v3 system. It is very unlikely that
there is still use of Flamenco v2 by people who will want to migrate to
v3 in the future. I expect that if they wanted to, they'd have done so
by now.
Ref: #104403