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

Generate results.yaml file in progress #3559

Merged
merged 16 commits into from
Mar 11, 2025
Merged

Generate results.yaml file in progress #3559

merged 16 commits into from
Mar 11, 2025

Conversation

therazix
Copy link
Collaborator

@therazix therazix commented Feb 27, 2025

This PR changes how the results.yaml file is saved. Previously, the file was saved only once after the execute step was completed, and it contained only the executed tests, omitting any discovered but unexecuted tests.

With this change, a new result outcome pending is introduced, for tests that have been discovered but not yet executed. Additionally, the saving behavior has been updated:

  • After the discover step, the results.yaml file is saved for the first time, with pending results for tests that have been discovered but not yet executed.
  • The file is then updated after each test execution to reflect the latest results.

Resolves: #3304
Resolves: #3238

Pull Request Checklist

  • implement the feature
  • write the documentation
  • extend the test coverage
  • update the specification
  • adjust plugin docstring
  • modify the json schema
  • mention the version
  • include a release note

@therazix therazix added this to the 1.44 milestone Feb 27, 2025
@therazix therazix added priority | must high priority, must be included in the next release area | results Related to how tmt stores and shares results labels Feb 27, 2025
@therazix therazix mentioned this pull request Feb 27, 2025
8 tasks
@therazix therazix added step | execute Stuff related to the execute step step | discover Stuff related to the discover step labels Feb 27, 2025
@happz happz added the ci | full test Pull request is ready for the full test execution label Mar 3, 2025
@happz happz marked this pull request as ready for review March 4, 2025 09:39
Copy link
Collaborator

@martinhoyer martinhoyer left a comment

Choose a reason for hiding this comment

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

You can count on me to provide a valuable feedback like color choices or saving 0.0000000001% by iterating differently. 🥇

Nitpicks with no value aside, LGTM! Thanks! :)

Copy link
Collaborator

@lukaszachy lukaszachy left a comment

Choose a reason for hiding this comment

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

Two nitpicks, looks great otherwise.

@therazix
Copy link
Collaborator Author

The test /tests/discover/pruning was failing due to an issue with pruning remote repositories when a path is defined. It seems that this function does not update the paths as expected, causing an error when accessing the fmf_id during the creation of pending results.

I don’t believe this issue is related to this PR, so I removed the fmf_id from the pending results in bd2bbd1. We can restore it once the pruning issue is fixed, but I don't want to block this PR on that.

@lukaszachy
Copy link
Collaborator

It seems that this function does not update the paths as expected, causing an error when accessing the fmf_id during the creation of pending results.

Ouch, that reminded me we have flow where discover happens in 'prepare' (dist-git-source: true) which means in this case there are no 'pending' results created. I wouldn't block the PR on this though. (And it affects plan splitter as well:/

@happz
Copy link
Collaborator

happz commented Mar 10, 2025

The test /tests/discover/pruning was failing due to an issue with pruning remote repositories when a path is defined. It seems that this function does not update the paths as expected, causing an error when accessing the fmf_id during the creation of pending results.

I don’t believe this issue is related to this PR, so I removed the fmf_id from the pending results in bd2bbd1. We can restore it once the pruning issue is fixed, but I don't want to block this PR on that.

Please, file an issue, and make it stand out by some nice label, I would dare to give it a priority | must to start with - we can always downgrade, but this should not fall under the table.

There should be no technical reason for not having fmf IDs in pending results, tests were discovered already, and they should have fmf IDs. fmf ID is not in results for fun, somebody asked for it to be in there, and while I do not remember who requested it, I bet they will ask why it's missing in pending results as soon as they run into a run with pending results in RP or somewhere ;)

@psss
Copy link
Collaborator

psss commented Mar 10, 2025

I remember during the discussion someone objecting against having pending as the final state to be included in the finished run. I believe the motivation was to prevent confusion when users are reviewing the result and could consider pending as something which is still running. Are we ok with having pending there? I'd say that if the whole plan is clearly marked as finished, pending is just fine there. Thoughts?

@happz
Copy link
Collaborator

happz commented Mar 10, 2025

I remember during the discussion someone objecting against having pending as the final state to be included in the finished run. I believe the motivation was to prevent confusion when users are reviewing the result and could consider pending as something which is still running. Are we ok with having pending there? I'd say that if the whole plan is clearly marked as finished, pending is just fine there. Thoughts?

Presence of pending in the final results.yaml is part of what this issue is about: it's not just to signal which tests are expected to run in the future in RP or whatever other fancy web UI is out there, but also to represent tests that should have been executed but were not, because of test abort or meteor striking the data center. I understand it as a final state - something that was expected to run, but did not - yet, ever, who knows, that depends on whether I'm observing a run in progress or inspecting results of a run where kernel installation failed and aborted the run.

We can pick a different name, to represent this aspect "should run", as pending may sound to some like "we'll get to it" - well, maybe you won't, because of that stupid meteor hit... Or, we can keep pending, find another name, and force tmt to change all pending to much-more-final-outcome before exiting. I never felt the urge to have such a dedicated name, I for one was fine with pending vs a run no longer runs.

Copy link
Collaborator

@psss psss left a comment

Choose a reason for hiding this comment

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

Thanks for implementing this! Looks good, just a few minor nitpicks.

@psss psss requested a review from thrix March 10, 2025 19:19
@therazix
Copy link
Collaborator Author

Please, file an issue, and make it stand out by some nice label, I would dare to give it a priority | must to start with - we can always downgrade, but this should not fall under the table.

Issue created: #3589

@psss psss force-pushed the fvagner-results branch from 0607cd5 to 8ca2209 Compare March 11, 2025 12:17
@psss psss added the status | ready for merge The only missing piece is to do the rebase the current 'main' and let the CI finish. label Mar 11, 2025
@psss
Copy link
Collaborator

psss commented Mar 11, 2025

Rebased, should be ready for merge.

@psss psss force-pushed the fvagner-results branch from 8ca2209 to 46532e1 Compare March 11, 2025 16:22
@martinhoyer martinhoyer merged commit 85ab753 into main Mar 11, 2025
22 checks passed
@martinhoyer martinhoyer deleted the fvagner-results branch March 11, 2025 21:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area | results Related to how tmt stores and shares results ci | full test Pull request is ready for the full test execution priority | must high priority, must be included in the next release status | ready for merge The only missing piece is to do the rebase the current 'main' and let the CI finish. step | discover Stuff related to the discover step step | execute Stuff related to the execute step
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Generate results.yaml in progress Include all discovered tests in the results.yaml file
6 participants