Skip to content

Conversation

@maramsmurthy
Copy link
Contributor

@maramsmurthy maramsmurthy commented Nov 22, 2025

Definition help to read required number of block from a block device. Which is command across all devices

Summary by CodeRabbit

  • New Features

    • Added FreeBSD platform support for configuration paths
    • VMImage caching for previously downloaded images
    • Remote command execution support in network utilities
  • Improvements

    • Enhanced GDB tooling with improved documentation and error handling
    • Better network interface and port management utilities
    • Direct file path support for assets
  • Platform Support

    • Dropped Python 3.8 support; added Python 3.14
    • Updated system dependencies for testing (gcc, gdb, gdbserver)
    • Expanded OpenSUSE version support
  • Bug Fixes

    • Network interface IP address and packet loss handling
    • GDB/MI parser regressions

✏️ Tip: You can customize this high-level summary in your review settings.

richtja and others added 30 commits August 13, 2025 17:18
The utility deprecation warning on `aurl` utility is causing troubles,
because it's logged every time the utility is used, which pollutes test
logs. This commit will log the warning only once and also makes the
solution more general for future use during the AAutils migration.

Assisted-by: Cursor with gemini-2.5-pro
Reference: avocado-framework#6176
Signed-off-by: Jan Richter <[email protected]>
since the path development has been migrated to AAutils we need to
inform users and developers about this change.

Reference: avocado-framework/aautils#84
Signed-off-by: Jan Richter <[email protected]>
Improve VMImage caching and asset handling functionality.

- Enhanced asset.py to handle direct file paths and normal asset names
- Better error handling and logging in get_metadata()
- Refactored _find_cached_image() to use Asset functionality
- Fixed multiple Pylint warnings (too-many-branches, protected-access, etc.)
- Improved network error handling in provider selection

Assisted By: Cursor GPT-5
Signed-off-by: Harvey Lynden <[email protected]>
Update Fedora provider to use archive URLs for versions <= 40
instead of <= 38 to fix download failures for Fedora 39/40.

Assisted By: Cursor GPT-5
Signed-off-by: Harvey Lynden <[email protected]>
Announcement of deprecation of data_structures.

Signed-off-by: Harvey Lynden <[email protected]>
Without this change, running the gdb example
tests (examples/tests/gdbtest.py) will fail on newer gcc.

Signed-off-by: Cleber Rosa <[email protected]>
These module level variables were used to control the behavior of the
gdb utility from the command line plugin.  The plugin was never
migrated to nrunner due to the parallelism aspects, so these are not
needed anymore.

Signed-off-by: Cleber Rosa <[email protected]>
This is a set of docstrings updates to prepare this utility for
migration to AAutils project.

Reference: avocado-framework/aautils#82
Assisted-by: Cursor Claude 4 Sonnet
Signed-off-by: Cleber Rosa <[email protected]>
For the distro version 8 and older releases distro version less than 9 check is sufficient

Signed-off-by: Pavaman Subramaniyam <[email protected]>
There's a clear mistake in the assigment made, which overwrites an
unintended variable.  This is because of the variable rename from
upper to lower case in commit 57dcecf.

Signed-off-by: Cleber Rosa <[email protected]>
The GDB example tests all depend on gcc because of the shared setUp()
method.  Then, some will use only the GDB class (and thus depend on
the "gdb" binary), while others will use both GDB and GDBServer
classes (and thus also depend on the "gdbserver" binary).

This fortifies the execution of these tests in environments without
those external software packages installed.

Signed-off-by: Cleber Rosa <[email protected]>
There's a functional GDB test that is being shipped only as an
example test.  We can make it run during the selftests to
increase the module coverage (and avoid regression as could be
observed in the last few commits).

Signed-off-by: Cleber Rosa <[email protected]>
Migration of External Util Pylint

Reference: avocado-framework/aautils#38
Signed-off-by: Harvey Lynden <[email protected]>
This is a docstring update for network utility as preparation for AAutils
migration.

Assisted-by: Cursor with gemini-2.5-pro
Reference: avocado-framework/aautils#76
Signed-off-by: Jan Richter <[email protected]>
This is a set of unit tests updates and checks to prepare
avocado.utils.network utility for migration to AAutils project.

Assisted-by: Cursor with gemini-2.5-pro
Reference: avocado-framework/aautils#76
Signed-off-by: Jan Richter <[email protected]>
The check for packet loss wasn't considering losses of full numbers like
10, 20, ..., 100. All of them would be considered as 0%. This commit
fixes it.

Assisted-by: Cursor with gemini-2.5-pro
Signed-off-by: Jan Richter <[email protected]>
When the device doesn't have any ip address the nm_flush_ipadd method
would still run `ip addr delete`. This commit avoids it.

Assisted-by: Cursor with gemini-2.5-pro
Signed-off-by: Jan Richter <[email protected]>
Since the network.ports development has been migrated to AAutils we need
to inform users and developers about this change.

Reference: avocado-framework/aautils#88
Signed-off-by: Jan Richter <[email protected]>
Warning of development moving over to AAutils for
External Modules.

Reference: avocado-framework/aautils#69
Signed-off-by: Harvey Lynden <[email protected]>
This fixes a number of issues with a pre-release check for the latest
avocado build:

 1. The repo with the actual latest build is called
    "avocado-latest" (while the latest released build
    is called "avocado-latest-release")

 2. Fedora 40 has been EOL'd and it's been bumped to 42

The new container images with these changes are already deployed on
quay.io.

Signed-off-by: Cleber Rosa <[email protected]>
The LEAP 15.2 version has been EOL'd and removed from the website.
The other versions suffered a few naming adjustments, which this
covers.

Signed-off-by: Cleber Rosa <[email protected]>
Increase Code Coverage - Added RST Docstrings

Reference: avocado-framework/aautils#42
Assisted-By: Claude 4 Sonnet Cursor
Signed-off-by: Harvey Lynden <[email protected]>
On Python 3.9 and earlier, we're pinning the cffi dep.  With the most
recent cryptography release (46.0.0), a more recent cffi version is
required.  This causes the dependency resolution to be impossible.

Let's also pin the version of cryptography on Python 3.9, along with
cffi.

Signed-off-by: Cleber Rosa <[email protected]>
Assisted-by: Cursor with cloude-4-sonnet
Signed-off-by: Jan Richter <[email protected]>
Signed-off-by: Jan Richter <[email protected]>
We've seen headers and messages that make it difficult to review
pull requests or understand recent changes.

Explain the purpose of both a bit more and provide an example to
help contributors understand better what is expected and serve as
reference.

Signed-off-by: Sebastian Mitterle <[email protected]>
The TaskRunStatusService.test_task_status_service_lost, from
selftests/functional/nrunner.py, fails every now and then.  There are
a number of expectations with regards to the timing of both the
netcat process and listening socket, and the avocado-runner process.

The following changes are added here in an effort to mitigate or
eliminate those failures:

 * A wait was added after the netcat process starts, and before the
   avocado-runner process is created and started, improving the odds
   that the netcat socket will be available.

 * A longer execution time for the underlying executable (/bin/sleep)
   mitigates the possibility of it ending before netcat is killed.

 * A longer sleep after the avocado-runner process is started improves
   the odds of it having properly started and connected to the socket.

 * Waiting for the end of the netcat process makes sure the assertion
   is not tried without the connection having being broken on the
   netcat side.

Signed-off-by: Cleber Rosa <[email protected]>
harvey0100 and others added 6 commits November 22, 2025 13:04
Announcement of deprecation of Output

Signed-off-by: Harvey Lynden <[email protected]>
- Add comprehensive docstrings with parameter types, return values, and examples
- Include detailed descriptions for all functions
- Add proper Sphinx documentation formatting
- Remove redundant '(0s and 1s)' descriptions from bitlist functions
- Simplify iter_tabular_output docstring to original concise version
- Update spell.ignore for new documentation terms

Reference: avocado-framework/aautils#48
Assisted-By: Claude 4 Sonnet Cursor
Signed-off-by: Harvey Lynden <[email protected]>
- Add full test coverage for bitlist_to_string and string_to_bitlist functions
- Add tests for shell_escape function with various special characters
- Add tests for strip_console_codes with ANSI escape sequences
- Add tests for tabular output functions (iter_tabular_output, tabular_output)
- Add tests for string utility functions (string_safe_encode, string_to_safe_path)
- Add tests for type checking functions (is_bytes, is_text, to_text)
- Update check.py to include astring module in testing
- Condense multi-line bitlist definitions into readable one-liners

Reference: avocado-framework/aautils#48
Assisted-By: Claude 4 Sonnet Cursor
Signed-off-by: Harvey Lynden <[email protected]>
Normalize hex escape sequences to lowercase for consistency with Python
coding conventions. While both forms are functionally identical, lowercase
hex digits align with community standards and prevent potential linting
inconsistencies across different tools.

Signed-off-by: Harvey Lynden <[email protected]>
FreeBSD reserves /etc for the base system configuration.  All other
software should usr /usr/local/etc instead.

Reference: https://man.freebsd.org/cgi/man.cgi?hier(7)
Reported-by: Roman Bogorodskiy <[email protected]>
Signed-off-by: Cleber Rosa <[email protected]>
This definition is required for
Scenarios which require reading certaing number of block from disk

Current usage is with nvme SED operation, But it comman across all block devices

Signed-off-by: Maram Srimannarayana Murthy <[email protected]>
@mr-avocado
Copy link

mr-avocado bot commented Nov 22, 2025

You are changing one of the avocado utils which has already been migrated to AAutils project https://github.com/avocado-framework/aautils and this utility will be removed after the LTS release. Please make sure that all your proposed changes are already in AAutils and this PR is only backport.

For more information about AAutlis migration see https://avocado-framework.readthedocs.io/en/latest/blueprints/BP005.html

For a list of migrated utilities see https://avocado-framework.github.io/aautils.html

@coderabbitai
Copy link

coderabbitai bot commented Nov 22, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This PR implements Avocado version 112.0 with a broad set of improvements and maintenance updates. Key changes include introducing platform-specific path handling for FreeBSD, establishing a centralized deprecation warning system across multiple utility modules, adding system-level build dependencies for GDB and compiler tooling, expanding docstrings and type annotations throughout the codebase, implementing cached VM image lookup functionality, fixing a state-keying bug in the Spark parser, removing deprecated GDB module constants, and extending test coverage for network utilities. Version identifiers are incremented from 111.0 to 112.0 across the main package and all optional plugins. Release documentation for 112.0 is added alongside updates to development branches.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

  • avocado/utils/vmimage.py: New _find_cached_image method with asset scanning, metadata loading, and hash verification logic; revised error handling for provider instantiation with error aggregation; URL pattern expansions for Fedora and OpenSUSE image compatibility
  • avocado/utils/external/spark.py: State dictionary keying bug fix (nk vs nk.stateno alignment) requiring careful verification of state tracking logic
  • avocado/utils/gdb.py: Removal of five public module-level constants (GDB_RUN_BINARY_NAMES_EXPR, GDB_PRERUN_COMMANDS, GDB_ENABLE_CORE, GDB_PATH, GDBSERVER_PATH); parameter renames in GDBRemote.encode/decode (command_data → data); substantial docstring and documentation overhaul
  • avocado/utils/deprecation.py: New module introducing LogDeprecation class with warning and flush semantics; verify logging behavior and once-per-message guarantees
  • avocado/core/utils/path.py and avocado/core/settings.py: Platform detection logic for FreeBSD; verify conditional path selection for /etc vs /usr/local/etc
  • Network utilities refactoring (path.py, common.py, hosts.py, interfaces.py): Remote host execution support, extensive docstring additions, and error handling improvements; verify remote_session integration and error paths
  • python-avocado.spec: BuildRequires additions and release number changes; verify RPM build metadata consistency

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 50bcca0 and 61a1243.

📒 Files selected for processing (54)
  • .github/workflows/autils_migration_announcement.yml (1 hunks)
  • .github/workflows/push_ci.yml (1 hunks)
  • .pylintrc (1 hunks)
  • .pylintrc_utils (1 hunks)
  • VERSION (1 hunks)
  • avocado/core/settings.py (2 hunks)
  • avocado/core/utils/path.py (3 hunks)
  • avocado/plugins/runners/avocado_instrumented.py (2 hunks)
  • avocado/utils/asset.py (3 hunks)
  • avocado/utils/astring.py (9 hunks)
  • avocado/utils/aurl.py (1 hunks)
  • avocado/utils/data_structures.py (1 hunks)
  • avocado/utils/deprecation.py (1 hunks)
  • avocado/utils/disk.py (1 hunks)
  • avocado/utils/external/gdbmi_parser.py (1 hunks)
  • avocado/utils/external/spark.py (2 hunks)
  • avocado/utils/gdb.py (36 hunks)
  • avocado/utils/network/common.py (1 hunks)
  • avocado/utils/network/exceptions.py (1 hunks)
  • avocado/utils/network/hosts.py (7 hunks)
  • avocado/utils/network/interfaces.py (47 hunks)
  • avocado/utils/network/ports.py (7 hunks)
  • avocado/utils/output.py (5 hunks)
  • avocado/utils/path.py (1 hunks)
  • avocado/utils/vmimage.py (5 hunks)
  • contrib/containers/ci/selftests/check-copr-rpm-version.docker (1 hunks)
  • docs/source/guides/contributor/chapters/styleguides.rst (1 hunks)
  • docs/source/releases/112_0.rst (1 hunks)
  • docs/source/releases/index.rst (1 hunks)
  • docs/source/releases/next.rst (2 hunks)
  • optional_plugins/ansible/VERSION (1 hunks)
  • optional_plugins/ansible/setup.py (1 hunks)
  • optional_plugins/golang/VERSION (1 hunks)
  • optional_plugins/html/VERSION (1 hunks)
  • optional_plugins/mail/VERSION (1 hunks)
  • optional_plugins/result_upload/VERSION (1 hunks)
  • optional_plugins/resultsdb/VERSION (1 hunks)
  • optional_plugins/robot/VERSION (1 hunks)
  • optional_plugins/spawner_remote/VERSION (1 hunks)
  • optional_plugins/varianter_cit/VERSION (1 hunks)
  • optional_plugins/varianter_pict/VERSION (1 hunks)
  • optional_plugins/varianter_yaml_to_mux/VERSION (1 hunks)
  • python-avocado.spec (3 hunks)
  • selftests/check.py (1 hunks)
  • selftests/functional/nrunner.py (1 hunks)
  • selftests/functional/utils/gdb.py (11 hunks)
  • selftests/functional/utils/gdb.py.data/return99.c (1 hunks)
  • selftests/functional/utils/network.py (1 hunks)
  • selftests/pre_release/tests/check-copr-rpm-version.sh (1 hunks)
  • selftests/unit/utils/astring.py (1 hunks)
  • selftests/unit/utils/network.py (4 hunks)
  • selftests/unit/utils/output.py (2 hunks)
  • selftests/vmimage/variants/vmimage.py.data/variants.yml (1 hunks)
  • spell.ignore (1 hunks)

Tip

📝 Customizable high-level summaries are now available in beta!

You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide your own instructions using the high_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. 📝 Description — Summarize the main change in 50–60 words, explaining what was done.
  2. 📓 References — List relevant issues, discussions, documentation, or related PRs.
  3. 📦 Dependencies & Requirements — Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. 📊 Contributor Summary — Include a Markdown table showing contributions:
    | Contributor | Lines Added | Lines Removed | Files Changed |
  5. ✔️ Additional Notes — Add any extra reviewer context.
    Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mr-avocado mr-avocado bot moved this to Review Requested in Default project Nov 22, 2025
@maramsmurthy
Copy link
Contributor Author

Looks like wrong request. WIll create new request.

@github-project-automation github-project-automation bot moved this from Review Requested to Done 113 in Default project Nov 22, 2025
@codecov
Copy link

codecov bot commented Nov 22, 2025

Codecov Report

❌ Patch coverage is 64.95726% with 41 lines in your changes missing coverage. Please review.
✅ Project coverage is 74.78%. Comparing base (56cdcdc) to head (61a1243).
⚠️ Report is 52 commits behind head on master.

Files with missing lines Patch % Lines
avocado/utils/vmimage.py 19.44% 29 Missing ⚠️
avocado/utils/asset.py 46.15% 7 Missing ⚠️
avocado/utils/disk.py 33.33% 2 Missing ⚠️
avocado/core/settings.py 75.00% 1 Missing ⚠️
avocado/core/utils/path.py 80.00% 1 Missing ⚠️
avocado/utils/deprecation.py 94.73% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #6240      +/-   ##
==========================================
+ Coverage   68.53%   74.78%   +6.25%     
==========================================
  Files         205      206       +1     
  Lines       22412    22497      +85     
==========================================
+ Hits        15359    16825    +1466     
+ Misses       7053     5672    -1381     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants