-
Notifications
You must be signed in to change notification settings - Fork 5
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
Avocado LTS base #28
Merged
Merged
Avocado LTS base #28
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This adapts to new behavior in avocado and our merged LXC spawner that was introduced after 101 and before 102. In particular, out custom scheduler must take care of the test output directory setup and Avocado VT doesn't need this because it uses the default avocado scheduler. Take the opportunity to also imitate the full name URI setup for each test like in Avocado VT and avoid cases of folder collision due to identical shorter test names.
The job log namespace was now properly separated from that of avocado tests and using for log messages will make them end up in the job.log as well as a full.log file, something which is needed in order to restore the previous logging setup for our plugin.
Among those are catching asyncio timeout errors with sufficient details, summary update with further found test statuses, etc.
The main test task might need additional task dependencies (not to be confused with test dependencies) like sysinfo data collection or other plugins that set up or clean up test environments. Instead of using Avocado's runtime task graph which restricts the possible ID-s for tests, has a linear topological order progression, and involves an undesirable composition of graph within a graph, we resort to providing an alternative handling of avocado's notion of these pre- and post- tasks per test without much scheduling effort. Despite the sysinfo support one has to keep in mind that performing such extra tasks before and after each test would inevitably slow the run down and unfortunately to a large degree (by >50% from some measurements).
Recent Avocado versions bring about more race conditions with the previous asyncio sleep duration and the current one will also shorten the overall isolation test run time.
These are the starting dependencies that have both full support for LXC as well as remote spawners. The parallel traversal introduced in the less stable 98.0 mid-LTS release was disabled by default as optional experimental functionality and needed an LXC spawner patch to the main avocado source to be enabled and thus properly used. Follow up changes after the same intermediary release needed even more patches on both the avocado (additional remote spawner) and avocado-vt (enhanced QemuImg utility) and would make retrospective checkouts at these commits very difficult. It is thus vital that we get a working dependency version pointer as early as possible before doing any further changes, let alone the large scale changes before our own compatibility-synchronized 103.0 LTS release. This commit now serves as a starting point for full compatibility with each follow up commit possible to check out and re-validate if needed. What this means is that any change to follow must be applicable on top of the Avocado(-VT) 103.0 LTS dependencies which contain all contributed and needed changes to make it complete.
pevogam
force-pushed
the
avocado-lts-base
branch
from
January 26, 2024 07:24
b7858f0
to
20f73ff
Compare
pevogam
force-pushed
the
avocado-lts-base
branch
2 times, most recently
from
January 26, 2024 07:42
7ca3889
to
5c70dbe
Compare
The main reason not to use PyPI packages is that Avocado VT's deployment pipeline there has been discontinued. Note that our pip dependencies file is not wrong in specifying the version for Avocado VT since if it is already installed the dependency will be satisfied and we cannot control and don't specify the way in which Avocado VT should be deployed to begin with. This approach is also easier for testing with modified versions of the avocado dependencies since it doesn't require the complete package publishing process and additional stages.
pevogam
force-pushed
the
avocado-lts-base
branch
from
January 26, 2024 07:43
5c70dbe
to
92c80a8
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This branch lays the foundation for changes to come with an upcoming
LTS release by adapting the use of avocado dependencies to their LTS
version that contains all our patches and will make recent as well as
forthcoming plugin development valid.