Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display component evaluating status #12126

Merged
merged 2 commits into from
Jan 27, 2025
Merged

Conversation

kazcw
Copy link
Contributor

@kazcw kazcw commented Jan 23, 2025

Pull Request Description

Components being evaluated show loading animation in icon position.

Gravacao.do.ecra.2025-01-23.as.14.07.19.mov

(Video demonstrates UI, but progress updates triggering this state are not sent by backend yet.)

Fixes #7577.

Important Notes

Checklist

Please ensure that the following checklist has been satisfied before submitting the PR:

  • The documentation has been updated, if necessary.
  • Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
  • All code follows the
    Scala,
    Java,
    TypeScript,
    and
    Rust
    style guides. In case you are using a language not listed above, follow the Rust style guide.
  • Unit tests have been written where possible.
  • If meaningful changes were made to logic or tests affecting Enso Cloud integration in the libraries,
    or the Snowflake database integration, a run of the Extra Tests has been scheduled.
    • If applicable, it is suggested to paste a link to a successful run of the Extra Tests.

@kazcw kazcw added the CI: No changelog needed Do not require a changelog entry for this PR. label Jan 23, 2025
@kazcw kazcw self-assigned this Jan 23, 2025
Copy link

github-actions bot commented Jan 23, 2025

🧪 Storybook is successfully deployed!

📊 Dashboard:

Comment on lines 85 to 88
const evaluating = computed(() => {
const status = graphDb.getExpressionInfo(toValue(externalId))?.payload.type
return status === 'Pending' || status === undefined
})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Task specs states, that we should display node as "evaluating" only when payload.progress > 0.

Engine does not send us progress (yet), but we may test it in integration tests (we already have mockExpressionUpdate)

@kazcw kazcw marked this pull request as draft January 24, 2025 16:53
@kazcw kazcw marked this pull request as ready for review January 24, 2025 16:54
@kazcw kazcw merged commit c54fb07 into develop Jan 27, 2025
40 checks passed
@kazcw kazcw deleted the wip/kw/component-evaluating-status branch January 27, 2025 14:17
@JaroslavTulach JaroslavTulach mentioned this pull request Jan 28, 2025
5 tasks
@JaroslavTulach
Copy link
Member

JaroslavTulach commented Feb 21, 2025

TimedDemo.webm

mergify bot pushed a commit that referenced this pull request Feb 27, 2025
Defines _Progress API_ - a way to start long running actions and report their progress:
```ruby
type Progress
advance self amount:Standard.Base.Data.Numbers.Integer= -> Standard.Base.Logging.Progress
log self detail:Standard.Base.Data.Text.Text -> Standard.Base.Logging.Progress
run label:Standard.Base.Data.Text.Text up_to:Standard.Base.Data.Numbers.Integer action:Standard.Base.Any.Any -> Standard.Base.Any.Any
```
The reported information is then collected in language server and delivered to the IDE to display the progress via #12126 & co.

# Important Notes
The _"Enso facing API"_ consists of `type Progress` with its static method to execute a _progress reporting_ operations. The operation is a function that gets `Progress` instance as a callback and can use its methods to report the `advance` as well as `log` details of the actual operation in progress.

This is all very similar to _logging_:
- hence the `Progress` type is placed into logging
- logging is used to report the operation progress
- `LoggedMessage.observe` is used to collect the messages in the language server
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI: No changelog needed Do not require a changelog entry for this PR.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Display "evaluating" status for nodes
3 participants