WIP: Enhance Task Log Functionality and Improved Development Setup Documentation #104300

Draft
MrJW wants to merge 1 commits from MrJW/flamenco:main into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
Contributor

This pull request primarily focuses on enhancing the task log display functionality within the task details view, while also adding a helpful section to the README that explains how to set up the development environment.

image

Main Changes:

Task Log Display:

Footer Component (TaskLog.vue):

  • Improved column settings to enhance log display.
  • Implemented dynamic height based on whether the log is displayed in the footer or not.
  • Adjusted unique ID handling to prevent conflicts when using the "Follow Task Log" button, ensuring separate log views for the current task details view and the footer log view.

Job Details Component (TaskDetails.vue):

  • Introduced a new task log view within the detailed job view.

Development Setup Documentation:

README.md:

  • Added a section on how to set up the development environment, including links to developer documentation and workboard.
This pull request primarily focuses on enhancing the task log display functionality within the task details view, while also adding a helpful section to the README that explains how to set up the development environment. ![image](/attachments/218f8ccb-cbea-42d3-9f86-a29055b94f3e) ## Main Changes: ### Task Log Display: **Footer Component (TaskLog.vue):** - Improved column settings to enhance log display. - Implemented dynamic height based on whether the log is displayed in the footer or not. - Adjusted unique ID handling to prevent conflicts when using the "Follow Task Log" button, ensuring separate log views for the current task details view and the footer log view. **Job Details Component (TaskDetails.vue):** - Introduced a new task log view within the detailed job view. ### Development Setup Documentation: **README.md:** - Added a section on how to set up the development environment, including links to developer documentation and workboard.
376 KiB
MrJW added 2 commits 2024-05-06 00:13:21 +02:00
Sybren A. Stüvel reviewed 2024-05-06 11:45:41 +02:00
Sybren A. Stüvel left a comment
Owner

Thanks for your work @MrJW !

Originally I chose the footer as lines from Blender can be very long, and it could be cumbersome to view them with a lot of rewrapping. Then again, it can also be cumbersome to have little vertical space, of which there's much more in your version. It seems that neither of the two is without challenges. What's your view on this? And if we keep both log viewers around, how would people choose between them?


For future PRs, please keep them as much on a single topic as possible. For example, I'd like to land the changes to the README.md file, but I can't until the entire PR has been approved. Also these should be landed in separate commits. I can take care of that for this one, please keep it in mind for the future.

Thanks for your work @MrJW ! Originally I chose the footer as lines from Blender can be very long, and it could be cumbersome to view them with a lot of rewrapping. Then again, it can also be cumbersome to have little vertical space, of which there's much more in your version. It seems that neither of the two is without challenges. What's your view on this? And if we keep both log viewers around, how would people choose between them? --------------- For future PRs, please keep them as much on a single topic as possible. For example, I'd like to land the changes to the README.md file, but I can't until the entire PR has been approved. Also these should be landed in separate commits. I can take care of that for this one, please keep it in mind for the future.
@ -12,0 +15,4 @@
reqired: false,
default: true,
},
uniqueId: {

Since an "identifier" is always unique to the thing being identified, I think this property can be named better. How about elementID?

As for the capitalisation, I try to stick (as much as is sensible / practical) to the Go naming guidelines, so abbreviations (like ID) are in all-caps.

Since an "identifier" is always unique to the thing being identified, I think this property can be named better. How about `elementID`? As for the capitalisation, I try to stick (as much as is sensible / practical) to the Go naming guidelines, so abbreviations (like `ID`) are in all-caps.
Author
Contributor

Camel case habit :)

Camel case habit :)

The purpose of "follow task log" was to peek into the last few log lines, that's why we assigned it to a short and wide space. I would keep the additional space in task details to present more parsed information from the logs, rather than the logs themselves. In other words, I do not think the effort of making this work properly is worth the result.

The purpose of "follow task log" was to peek into the last few log lines, that's why we assigned it to a short and wide space. I would keep the additional space in task details to present more parsed information from the logs, rather than the logs themselves. In other words, I do not think the effort of making this work properly is worth the result.
Author
Contributor

The purpose of "follow task log" was to peek into the last few log lines, that's why we assigned it to a short and wide space. I would keep the additional space in task details to present more parsed information from the logs, rather than the logs themselves. In other words, I do not think the effort of making this work properly is worth the result.

For me the current solution is quite unreadable. It blocks view and on my wide monitor, it's hard to follow. I tried using "Open full log" but it is in fact not a full log, python print output is not logged. My proposition seems more readable should be faster to navigate. It allowed me to quickly find bug in my custom job type. I don't know what is planned there, for me it was jus a empty space. It should not interfere with current log view and can be easily discarded in the future if needed.

> The purpose of "follow task log" was to peek into the last few log lines, that's why we assigned it to a short and wide space. I would keep the additional space in task details to present more parsed information from the logs, rather than the logs themselves. In other words, I do not think the effort of making this work properly is worth the result. For me the current solution is quite unreadable. It blocks view and on my wide monitor, it's hard to follow. I tried using "Open full log" but it is in fact not a full log, python print output is not logged. My proposition seems more readable should be faster to navigate. It allowed me to quickly find bug in my custom job type. I don't know what is planned there, for me it was jus a empty space. It should not interfere with current log view and can be easily discarded in the future if needed.

Thanks Francesco for pitching in.

For me the current solution is quite unreadable. It blocks view and on my wide monitor, it's hard to follow.

Then I think these issues should be resolved separately from just adding another, similar-but-different viewer to the user interface.

I tried using "Open full log" but it is in fact not a full log, python print output is not logged.

It contains everything that's output by Blender on stdout and stderr. If this is missing certain things, that would be a separate issue (capturing output from Blender and forwarding as task log to Flamenco, is different from how the task log is presented in the web interface). Mixing too many things in the same pull request is not a good idea, as it muddles the discussion and makes it hard to actually land the changes.

The API function to get the last bit of the log (which is shown in the webapp) is reading from the exact same text file as the "Open full log" button shows.

My proposition seems more readable should be faster to navigate. It allowed me to quickly find bug in my custom job type.

What made it faster to navigate?

I don't know what is planned there, for me it was jus a empty space. It should not interfere with current log view and can be easily discarded in the future if needed.

I don't want any short-term solutions in Flamenco. If there are important shortcomings in how the task log is shown in the footer, let's identify those issues and try to solve them.

One of the goals with that space (which you couldn't have known about) is to show statistics there. How long did the task run for, what was the average render time per frame, that kind of thing.

Thanks Francesco for pitching in. > For me the current solution is quite unreadable. It blocks view and on my wide monitor, it's hard to follow. Then I think these issues should be resolved separately from just adding another, similar-but-different viewer to the user interface. > I tried using "Open full log" but it is in fact not a full log, python print output is not logged. It contains everything that's output by Blender on `stdout` and `stderr`. If this is missing certain things, that would be a separate issue (capturing output from Blender and forwarding as task log to Flamenco, is different from how the task log is presented in the web interface). Mixing too many things in the same pull request is not a good idea, as it muddles the discussion and makes it hard to actually land the changes. The API function to get the last bit of the log (which is shown in the webapp) is reading from the exact same text file as the "Open full log" button shows. > My proposition seems more readable should be faster to navigate. It allowed me to quickly find bug in my custom job type. What made it faster to navigate? > I don't know what is planned there, for me it was jus a empty space. It should not interfere with current log view and can be easily discarded in the future if needed. I don't want any short-term solutions in Flamenco. If there are important shortcomings in how the task log is shown in the footer, let's identify those issues and try to solve them. One of the goals with that space (which you couldn't have known about) is to show statistics there. How long did the task run for, what was the average render time per frame, that kind of thing.
Author
Contributor

What made it faster to navigate?

You can immediately see task lok upon selecting one rather than additionally click the Follow Task Log button. Furthermore, Log Drawer obscures tasks list so you need to close it. In practice it constant open and close cycle that could be avoided.

It contains everything that's output by Blender on stdout and stderr. If this is missing certain things, that would be a separate issue (capturing output from Blender and forwarding as task log to Flamenco, is different from how the task log is presented in the web interface). Mixing too many things in the same pull request is not a good idea, as it muddles the discussion and makes it hard to actually land the changes.

I'll create one.

I don't want any short-term solutions in Flamenco. If there are important shortcomings in how the task log is shown in the footer, let's identify those issues and try to solve them.

For me the biggest issue is that it obstructs in a weird way the view and does not change when I select different task. I think it could be better if the footer was actual footer instead of a anchored dialog at the bottom of the page. Or better yet it could be a side drawer, that way you could see more of the log lines at the same time. Moreover there could be a "pin" checkbox in the corner of the Log Dialog (like in blender) that would lock the view to only one task (like it doses now). The default behawior would be to follow currently selected task (like my change).

> What made it faster to navigate? You can immediately see task lok upon selecting one rather than additionally click the Follow Task Log button. Furthermore, Log Drawer obscures tasks list so you need to close it. In practice it constant open and close cycle that could be avoided. > It contains everything that's output by Blender on stdout and stderr. If this is missing certain things, that would be a separate issue (capturing output from Blender and forwarding as task log to Flamenco, is different from how the task log is presented in the web interface). Mixing too many things in the same pull request is not a good idea, as it muddles the discussion and makes it hard to actually land the changes. I'll create one. > I don't want any short-term solutions in Flamenco. If there are important shortcomings in how the task log is shown in the footer, let's identify those issues and try to solve them. For me the biggest issue is that it obstructs in a weird way the view and does not change when I select different task. I think it could be better if the footer was actual footer instead of a anchored dialog at the bottom of the page. Or better yet it could be a side drawer, that way you could see more of the log lines at the same time. Moreover there could be a "pin" checkbox in the corner of the Log Dialog (like in blender) that would lock the view to only one task (like it doses now). The default behawior would be to follow currently selected task (like my change).

You can immediately see task lok upon selecting one rather than additionally click the Follow Task Log button.

Aha, that wasn't quite clear to me, reading through the PR description. This does increase the load on the Manager, as it now needs to always send task log updates when someone looks at a task, instead of only when someone pressed the 'follow' button.

Furthermore, Log Drawer obscures tasks list so you need to close it. In practice it constant open and close cycle that could be avoided.

Yeah, this is a bit of an issue, I agree.

For me the biggest issue is that it obstructs in a weird way the view and does not change when I select different task. I think it could be better if the footer was actual footer instead of a anchored dialog at the bottom of the page. Or better yet it could be a side drawer, that way you could see more of the log lines at the same time. Moreover there could be a "pin" checkbox in the corner of the Log Dialog (like in blender) that would lock the view to only one task (like it doses now). The default behawior would be to follow currently selected task (like my change).

I'd like it if we could get the Flamenco Manager webapp working better with vertically-smaller screens, to begin with. The fact that the space above the task list is fixed in height makes this awkward. Having that solved would make it possible to have the task log showing without obstruction, as the rest of the interface can handle the reduction in vertically available space. That would require some more design work first, though, that's separate from just the task log viewer. Would you be up to that @MrJW ?

> You can immediately see task lok upon selecting one rather than additionally click the Follow Task Log button. Aha, that wasn't quite clear to me, reading through the PR description. This does increase the load on the Manager, as it now needs to always send task log updates when someone looks at a task, instead of only when someone pressed the 'follow' button. > Furthermore, Log Drawer obscures tasks list so you need to close it. In practice it constant open and close cycle that could be avoided. Yeah, this is a bit of an issue, I agree. > For me the biggest issue is that it obstructs in a weird way the view and does not change when I select different task. I think it could be better if the footer was actual footer instead of a anchored dialog at the bottom of the page. Or better yet it could be a side drawer, that way you could see more of the log lines at the same time. Moreover there could be a "pin" checkbox in the corner of the Log Dialog (like in blender) that would lock the view to only one task (like it doses now). The default behawior would be to follow currently selected task (like my change). I'd like it if we could get the Flamenco Manager webapp working better with vertically-smaller screens, to begin with. The fact that the space above the task list is fixed in height makes this awkward. Having that solved would make it possible to have the task log showing without obstruction, as the rest of the interface can handle the reduction in vertically available space. That would require some more design work first, though, that's separate from just the task log viewer. Would you be up to that @MrJW ?
MrJW changed title from Enhance Task Log Functionality and Improved Development Setup Documentation to WIP: Enhance Task Log Functionality and Improved Development Setup Documentation 2024-05-15 12:43:28 +02:00
MrJW force-pushed main from 5146de6ed3 to 5bc8bd84e9 2024-05-16 15:36:14 +02:00 Compare

@MrJW are you still interested in working on this?

@MrJW are you still interested in working on this?
This pull request is marked as a work in progress.
This branch is out-of-date with the base branch

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u main:MrJW-main
git checkout MrJW-main
Sign in to join this conversation.
No description provided.