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

103.next LTS backports #5953

Draft
wants to merge 17 commits into
base: 103lts
Choose a base branch
from

Conversation

clebergnu
Copy link
Contributor

@clebergnu clebergnu commented Jun 11, 2024

This is a collection of bugfixes that do not change the behavior (besides fixing/improving the specific condition) that come from Avocado versions > 103.x.

The tmpfile.mktemp function for creating tmp files has been depraceted
since 2.3 and has security issues. Lets remove it and use
tmpdir instead.

Reference:
https://github.com/avocado-framework/avocado/security/code-scanning/278
Signed-off-by: Jan Richter <jarichte@redhat.com>
@clebergnu clebergnu added this to the #106 - Codename TBD milestone Jun 11, 2024
@clebergnu clebergnu self-assigned this Jun 11, 2024
richtja and others added 4 commits June 11, 2024 13:59
This commit adds error handling to TaskStatusService. When the
connection is lost, it will try to establish a new connection. If the
connection is not possible to renew, the task will send warning message
about new status and remove TaskStatusService from available services.

Reference: avocado-framework#5794
Signed-off-by: Jan Richter <jarichte@redhat.com>
Signed-off-by: Cleber Rosa <crosa@redhat.com>
This commit will move establishment of status service connection from
post method to its own dedicated method. Thanks to this change, it will
be possible to establish connection over again when a problem occurs.

Signed-off-by: Jan Richter <jarichte@redhat.com>
When creating Runnables from recipes, the given configuration will get
discarded when "filtering" the configuration used.

The correct approach is to keep the given configuration, and suplement
it with the other needed (used) configuration.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
This creates a Dependency class to make dependencies hashable. Thanks to this
change, we can easily find duplicates and remove them. This change is really
necessary for Job dependencies, where the duplicates can be easily created by
adding the same dependency to a test and job.

Signed-off-by: Jan Richter <jarichte@redhat.com>
Signed-off-by: Cleber Rosa <crosa@redhat.com>
@arif-ali
Copy link

arif-ali commented Jul 1, 2024

Are these back-ports due any soon, and would love to see PR related to discussion #5610 to be also back-ported too. Any updates on that would be very much appreciated

@clebergnu
Copy link
Contributor Author

Are these back-ports due any soon, and would love to see PR related to discussion #5610 to be also back-ported too. Any updates on that would be very much appreciated

Hi @arif-ali,

I'll look into including those. We managed to release 106.0 last week, so I have more resources to push this through now.

Best!

richtja and others added 2 commits July 3, 2024 08:30
The store_logging_stream_external test installs external package
matplotlib and checks with the package properly logs to the avocado
directories. Unfortunately, this test used hardcoded line number of
matplotlib. Because of this, the test started failing when the line was
changed. This commit fixes this test by using regex instead of hardcoded
string. After this change, the test should be protected against external
changes in matplotlib package.

Signed-off-by: Jan Richter <jarichte@redhat.com>
On Python 3.12.2 and later the message given when no tests are run
was reverted to the pre-3.12.1 era. Sigh.

Let's adapt the nrunner selftest to take that into consideration.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
The container image used in CI for the static checks now has black
installed from pip.  This means that the executable "black" may not be
always accessible, but using "python3 -m" as an entrypoint is.

This is a partial backport of 77ca585.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
Signed-off-by: Cleber Rosa <crosa@redhat.com>
Fedora 38 is the development image used on CI, and one that is popular
for Avocado development at this time.  Let's match the version of
psutil available on the distro with the development requirement.

This avoid the atempt to compile a custom version of psutil.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
There's value in making the zstd probe function public (which was
previously not perceived).  This function can be used to skip/cancel
tests when a suitable zstd is not found.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
richtja and others added 4 commits November 27, 2024 22:57
This adds markupsafe<3.0.0 requirements to html plugin, because
markupsafe-3.0.0 can't be installed with older versions of setuptools on
RHEL9 and other systems because of `CCompilerError`.

We need to add the same requirement to `ansible` plugin,
because it would try to install markupsafe-3.0.0

Reference: avocado-framework#6038
Signed-off-by: Jan Richter <jarichte@redhat.com>
This fixes two problems with the current version parse mechanism:

 1. Recent setuptools' version parse function, which has dropped
    "LegacyVersion" support, raises an InvalidVersion exception
    for common kernel version info as presented by the system and
    returned by os.uname()

 2. The import of the packaging module is broken on systems with no
    setuptools and only the "packaging" module.

This introduces a simple but custom version parse that solves both and
simplifies dependencies.

Fixes: avocado-framework#6058
Signed-off-by: Cleber Rosa <crosa@redhat.com>
PyYAML versions 6.0.0 and later, are not compatible with Python 3.7.

Let's drop the minimal version requirement, which is not needed on
current platforms while setting the maximum version to avoid Python
3.7 incompatibilities.

Reference: https://pypi.org/project/PyYAML/5.4.1/
Signed-off-by: Cleber Rosa <crosa@redhat.com>
The number based naming of the job-api related suites do not provide
clear information on what it is about.  This uses a more meaningful
name for them.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
…mits

The sqlite3 module (and actually, even the non-python binary with the
same name), have "interesting" limitations when it comes to the
database path.

When the test that creates the journal file, and checks for it, runs
as part of an RPM build, the extra directories (/buildir/...) exceed
the path size limit.

While it would be possible to check if the "logdir" path, plus the
name of the journal database path, would eventually exceed the sqlite3
limits, this logic would be exclusive for one test variant.

IMO it does not justify adding such logic to keep a test that has
considerably low value.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
During RPM builds on Fedora 42 (really rawhide at this time), the RPM
package dependency system provides MarkupSafe > 3.0.0 (currently
3.0.2).  So, we remove the pinning, or else, the build would fail due
to a version requirement conflict.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Review Requested
Development

Successfully merging this pull request may close these issues.

3 participants