SeleniumHQ / selenium-ide

Open Source record and playback test automation for the web.
https://selenium.dev/selenium-ide/
Apache License 2.0
2.72k stars 739 forks source link

latest increment of everything #1822

Closed toddtarsi closed 1 month ago

toddtarsi commented 1 month ago

User description

Thanks for contributing to the Selenium IDE! A PR well described will help maintainers to quickly review and merge it

Before submitting your PR, please check our contributing guidelines. Avoid large PRs, help reviewers by making them as simple and short as possible.

Description

Motivation and Context

Types of changes

Checklist


PR Type

enhancement, bug_fix


Description


Changes walkthrough 📝

Relevant files
Enhancement
1 files
index.ts
Enhance chromedriver startup and error handling                   

packages/selenium-ide/src/main/session/controllers/System/index.ts
  • Improved error handling for chromedriver startup failures.
  • Added a check to reset to electron driver if non-electron driver fails
    on startup.
  • Enhanced logging for driver startup issues.
  • +21/-17 
    Configuration changes
    18 files
    package.json
    Update package version and dependencies                                   

    packages/code-export-csharp-commons/package.json
  • Updated version to 4.0.4.
  • Updated dependency side-code-export to version 4.0.5.
  • +3/-3     
    package.json
    Update package version and dependencies                                   

    packages/code-export-csharp-nunit/package.json
  • Updated version to 4.0.4.
  • Updated dependency side-code-export to version 4.0.5.
  • +2/-2     
    package.json
    Update package version and dependencies                                   

    packages/code-export-csharp-xunit/package.json
  • Updated version to 4.0.4.
  • Updated dependency side-code-export to version 4.0.5.
  • +3/-3     
    package.json
    Update package version and dependencies                                   

    packages/code-export-java-junit/package.json
  • Updated version to 4.0.4.
  • Updated dependency side-code-export to version 4.0.5.
  • +3/-3     
    package.json
    Update package version and dependencies                                   

    packages/code-export-javascript-mocha/package.json
  • Updated version to 4.0.4.
  • Updated dependency side-code-export to version 4.0.5.
  • +3/-3     
    package.json
    Update package version and dependencies                                   

    packages/code-export-python-pytest/package.json
  • Updated version to 4.0.4.
  • Updated dependency side-code-export to version 4.0.5.
  • +3/-3     
    package.json
    Update package version and dependencies                                   

    packages/code-export-ruby-rspec/package.json
  • Updated version to 4.0.4.
  • Updated dependency side-code-export to version 4.0.5.
  • +3/-3     
    package.json
    Update package version and dependencies                                   

    packages/get-driver/package.json
  • Updated version to 4.0.2.
  • Updated dependencies including tar to version 7.1.0.
  • +2/-3     
    package.json
    Update package version and dependencies                                   

    packages/selenium-ide/package.json
  • Updated version to 4.0.1-beta.10.
  • Updated multiple dependencies to newer versions.
  • +12/-12 
    package.json
    Update package version and dependencies                                   

    packages/side-api/package.json
  • Updated version to 4.0.8.
  • Updated dependencies including @seleniumhq/side-model to version
    4.0.2.
  • +4/-4     
    package.json
    Update package version and dependencies                                   

    packages/side-code-export/package.json
  • Updated version to 4.0.5.
  • Updated dependencies including @seleniumhq/side-model to version
    4.0.2.
  • +3/-3     
    package.json
    Update package version and dependencies                                   

    packages/side-example-suite/package.json
  • Updated version to 4.0.5.
  • Updated dependencies including side-code-export to version 4.0.5.
  • +3/-3     
    package.json
    Update package version                                                                     

    packages/side-model/package.json - Updated version to 4.0.2.
    +1/-1     
    package.json
    Update package version and dependencies                                   

    packages/side-runner/package.json
  • Updated version to 4.0.6.
  • Updated dependencies including @seleniumhq/side-model to version
    4.0.2.
  • +3/-3     
    package.json
    Update package version and dependencies                                   

    packages/side-runtime/package.json
  • Updated version to 4.0.7.
  • Updated dependencies including selenium-webdriver to version 4.20.0.
  • +5/-7     
    tsconfig.json
    Simplify TypeScript configuration                                               

    packages/side-runtime/tsconfig.json - Removed references to `side-testkit` and `webdriver-testkit`.
    +0/-6     
    package.json
    Update package version and dependencies                                   

    packages/webdriver-testkit/package.json
  • Updated version to 4.0.2.
  • Updated dependencies including selenium-webdriver to version 4.20.0.
  • +4/-4     
    pnpm-lock.yaml
    Comprehensive dependency updates in lock file                       

    pnpm-lock.yaml
  • Updated numerous package versions and dependencies across various
    packages.
  • +122/-98

    💡 PR-Agent usage: Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

    codiumai-pr-agent-pro[bot] commented 1 month ago

    CI Failure Feedback 🧐

    (Checks updated until commit https://github.com/SeleniumHQ/selenium-ide/commit/ba354f73cf42075aa5fc6bac3da3a8aae58f62ab)

    **Action:** test
    **Failed stage:** [Run all tests and also use xvfb](https://github.com/SeleniumHQ/selenium-ide/actions/runs/8969051465/job/24629701435) [❌]
    **Failure summary:** The action failed due to multiple issues:
  • Multiple ENOENT: no such file or directory errors occurred because the system could not find the
    specified files for creating binary links in various packages.
  • There were critical dependency warnings in the webpack build process indicating issues with how
    dependencies are requested or used.
  • A TypeError occurred in the download-driver.js script, specifically a failure to read properties of
    an undefined object, which suggests that the response object expected from a download operation was
    not properly received or handled.
  • Relevant error logs: ```yaml 1: ##[group]Operating System 2: Ubuntu ... 175: .../node_modules/@bazel/hide-bazel-files postinstall: Done 176: .../node_modules/@bazel/typescript postinstall: Done 177: .../node_modules/electron postinstall$ node install.js 178: .../node_modules/electron postinstall$ node install.js 179: .../node_modules/electron-chromedriver install$ node ./download-chromedriver.js 180: .../node_modules/electron postinstall: Done 181: .../node_modules/electron postinstall: Done 182: .../node_modules/electron-chromedriver install: Done 183: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-nunit/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js' 184: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-java-junit/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js' 185: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-commons/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js' 186: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-javascript-mocha/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js' 187: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-python-pytest/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js' 188: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-ruby-rspec/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js' 189: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-xunit/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js' 190: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/side-example-suite/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js' 191: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/selenium-ide/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-code-export/dist/bin.js' 192: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-commons/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-commons/node_modules/side-code-export/dist/bin.js' 193: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-javascript-mocha/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-javascript-mocha/node_modules/side-code-export/dist/bin.js' 194: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-java-junit/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-java-junit/node_modules/side-code-export/dist/bin.js' 195: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-ruby-rspec/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-ruby-rspec/node_modules/side-code-export/dist/bin.js' 196: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-python-pytest/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-python-pytest/node_modules/side-code-export/dist/bin.js' 197: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-nunit/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-nunit/node_modules/side-code-export/dist/bin.js' 198: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-xunit/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/code-export-csharp-xunit/node_modules/side-code-export/dist/bin.js' 199: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/side-example-suite/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/side-example-suite/node_modules/side-code-export/dist/bin.js' 200: WARN  Failed to create bin at /home/runner/work/selenium-ide/selenium-ide/packages/selenium-ide/node_modules/.bin/side-code-export. ENOENT: no such file or directory, open '/home/runner/work/selenium-ide/selenium-ide/packages/selenium-ide/node_modules/side-code-export/dist/bin.js' ... 295: packages/selenium-ide build:webpack: @ ./src/browser/windows/Splash/renderer.tsx 39:31-59 296: packages/selenium-ide build:webpack: WARNING in ../side-model/dist/I18N/index.js 36:82-92 297: packages/selenium-ide build:webpack: Critical dependency: the request of a dependency is an expression 298: packages/selenium-ide build:webpack: @ ../side-model/dist/index.js 38:13-30 299: packages/selenium-ide build:webpack: @ ./src/browser/I18N/en/index.ts 4:21-54 300: packages/selenium-ide build:webpack: @ ./src/browser/I18N/keys.ts 6:29-44 301: packages/selenium-ide build:webpack: @ ./src/browser/windows/Splash/renderer.tsx 39:31-59 302: packages/selenium-ide build:webpack: 2 warnings have detailed information that is not shown. 303: packages/selenium-ide build:webpack: Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it. ... 335: packages/selenium-ide build:webpack: Critical dependency: the request of a dependency is an expression 336: packages/selenium-ide build:webpack: @ ../side-model/dist/index.js 38:13-30 337: packages/selenium-ide build:webpack: @ ../side-api/dist/models/state/index.js 18:21-54 338: packages/selenium-ide build:webpack: @ ../side-api/dist/models/index.js 18:13-31 339: packages/selenium-ide build:webpack: @ ../side-api/dist/index.js 49:13-32 340: packages/selenium-ide build:webpack: @ ./src/browser/api/index.ts 7:19-50 19:17-48 341: packages/selenium-ide build:webpack: @ ./src/browser/windows/PlaybackWindow/preload.ts 6:30-52 342: packages/selenium-ide build:webpack: 2 warnings have detailed information that is not shown. 343: packages/selenium-ide build:webpack: Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it. ... 370: packages/selenium-ide build:webpack: Critical dependency: the request of a dependency is an expression 371: packages/selenium-ide build:webpack: @ ../side-model/dist/index.js 38:13-30 372: packages/selenium-ide build:webpack: @ ../side-api/dist/models/state/index.js 18:21-54 373: packages/selenium-ide build:webpack: @ ../side-api/dist/models/index.js 18:13-31 374: packages/selenium-ide build:webpack: @ ../side-api/dist/index.js 49:13-32 375: packages/selenium-ide build:webpack: @ ./src/browser/api/bidi.ts 7:19-50 19:17-48 376: packages/selenium-ide build:webpack: @ ./src/browser/windows/PlaybackWindowBidi/preload.ts 6:31-58 377: packages/selenium-ide build:webpack: 2 warnings have detailed information that is not shown. 378: packages/selenium-ide build:webpack: Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it. ... 440: packages/selenium-ide build:webpack: WARNING in ./src/main/session/controllers/System/index.ts 77:114-124 441: packages/selenium-ide build:webpack: Critical dependency: the request of a dependency is an expression 442: packages/selenium-ide build:webpack: @ ./src/main/session/index.ts 20:33-64 443: packages/selenium-ide build:webpack: @ ./src/main/index.ts 11:34-54 444: packages/selenium-ide build:webpack: WARNING in ../../node_modules/.pnpm/v8-compile-cache@2.3.0/node_modules/v8-compile-cache/v8-compile-cache.js 153:42-49 445: packages/selenium-ide build:webpack: Critical dependency: require function is used in a way in which dependencies cannot be statically extracted 446: packages/selenium-ide build:webpack: @ ./src/main/index.ts 6:0-27 447: packages/selenium-ide build:webpack: 6 warnings have detailed information that is not shown. 448: packages/selenium-ide build:webpack: Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it. ... 597: updating chromedriver... 598: Downloading driver from https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.60/linux64/chromedriver-linux64.zip to /home/runner/work/selenium-ide/selenium-ide/drivers/chromedriver 599: Downloaded driver from https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.60/linux64/chromedriver-linux64.zip to /home/runner/work/selenium-ide/selenium-ide/drivers/chromedriver 600: updating geckodriver... 601: Downloading driver from https://github.com/mozilla/geckodriver/releases/download/v0.34.0/geckodriver-v0.34.0-linux64.tar.gz to /home/runner/work/selenium-ide/selenium-ide/drivers/geckodriver 602: /home/runner/work/selenium-ide/selenium-ide/packages/get-driver/dist/download-driver.js:81 603: response?.body?.pipe(tar_1.default.t({ 604: ^ 605: TypeError: Cannot read properties of undefined (reading 't') 606: at /home/runner/work/selenium-ide/selenium-ide/packages/get-driver/dist/download-driver.js:81:44 607: at new Promise () 608: at processDownloadResonse (/home/runner/work/selenium-ide/selenium-ide/packages/get-driver/dist/download-driver.js:52:64) 609: at downloadDriver (/home/runner/work/selenium-ide/selenium-ide/packages/get-driver/dist/download-driver.js:94:11) 610: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 611: at async updateDrivers (/home/runner/work/selenium-ide/selenium-ide/packages/webdriver-testkit/dist/update-drivers.js:69:9) 612: Node.js v20.12.2 613: npm ERR! Lifecycle script `download-drivers` failed with error: 614: npm ERR! Error: command failed 615: npm ERR! in workspace: @seleniumhq/webdriver-testkit@4.0.2 616: npm ERR! at location: /home/runner/work/selenium-ide/selenium-ide/packages/webdriver-testkit 617: ##[error]Process completed with exit code 1. ```

    ✨ CI feedback usage guide:
    The CI feedback tool (`/checks)` automatically triggers when a PR has a failed check. The tool analyzes the failed checks and provides several feedbacks: - Failed stage - Failed test name - Failure summary - Relevant error logs In addition to being automatically triggered, the tool can also be invoked manually by commenting on a PR: ``` /checks "https://github.com/{repo_name}/actions/runs/{run_number}/job/{job_number}" ``` where `{repo_name}` is the name of the repository, `{run_number}` is the run number of the failed check, and `{job_number}` is the job number of the failed check. #### Configuration options - `enable_auto_checks_feedback` - if set to true, the tool will automatically provide feedback when a check is failed. Default is true. - `excluded_checks_list` - a list of checks to exclude from the feedback, for example: ["check1", "check2"]. Default is an empty list. - `enable_help_text` - if set to true, the tool will provide a help message with the feedback. Default is true. - `persistent_comment` - if set to true, the tool will overwrite a previous checks comment with the new feedback. Default is true. - `final_update_message` - if `persistent_comment` is true and updating a previous checks message, the tool will also create a new message: "Persistent checks updated to latest commit". Default is true. See more information about the `checks` tool in the [docs](https://pr-agent-docs.codium.ai/tools/ci_feedback/).
    codiumai-pr-agent-pro[bot] commented 1 month ago

    PR Description updated to latest commit (https://github.com/SeleniumHQ/selenium-ide/commit/1246e6fa8e6c27a979bd0b9ac2f31afd6cdb115d)

    codiumai-pr-agent-pro[bot] commented 1 month ago

    PR Review 🔍

    ⏱️ Estimated effort to review [1-5] 3, because the PR includes multiple changes across various package versions and a significant refactor in the main session controller logic. The changes are spread across multiple files and packages, which requires a thorough review to ensure compatibility and functionality.
    🧪 Relevant tests No
    ⚡ Possible issues Possible Bug: The refactored logic in `SystemController` for handling startup errors and driver processes could introduce bugs if not properly tested, especially since it involves conditional logic based on the browser type.
    Performance Concern: Multiple asynchronous operations and error handling in the `SystemController` could lead to unhandled promise rejections or memory leaks if not managed correctly.
    🔒 Security concerns No
    codiumai-pr-agent-pro[bot] commented 1 month ago

    PR Code Suggestions ✨

    CategorySuggestions                                                                                                                                                       
    Maintainability
    Improve variable naming for clarity. ___ **Consider using a more descriptive variable name than browser for the object holding
    browser information. This will improve code readability and maintainability.** [packages/selenium-ide/src/main/session/controllers/System/index.ts [85]](https://github.com/SeleniumHQ/selenium-ide/pull/1822/files#diff-4dbd893211cc75242de37cef110ee13c64879374f43a7a94be947eacbc059bb2R85-R85) ```diff -const browser = this.session.store.get('browserInfo') +const browserInfo = this.session.store.get('browserInfo') ```
    Refactor repeated code into a function to enhance maintainability. ___ **Refactor the repeated code for starting the process and setting the browser information
    into a separate function to enhance code reuse and maintainability.** [packages/selenium-ide/src/main/session/controllers/System/index.ts [101-102]](https://github.com/SeleniumHQ/selenium-ide/pull/1822/files#diff-4dbd893211cc75242de37cef110ee13c64879374f43a7a94be947eacbc059bb2R101-R102) ```diff -startupError = await this.session.driver.startProcess( - this.session.store.get('browserInfo') -) +async function restartBrowserWithNewInfo(browserInfo) { + await this.session.store.set('browserInfo', browserInfo); + return await this.session.driver.startProcess(browserInfo); +} +// Usage +startupError = await restartBrowserWithNewInfo({ + browser: 'electron', + useBidi: false, + version: '', +}); ```
    Update the dependency version to maintain consistency across related packages. ___ **Update the version of @seleniumhq/code-export-csharp-commons in
    @seleniumhq/code-export-csharp-nunit to match the latest version (4.0.4) to maintain
    consistency across packages that depend on each other.** [packages/code-export-csharp-commons/package.json [21]](https://github.com/SeleniumHQ/selenium-ide/pull/1822/files#diff-684ff69e79978f0a48461228c6104f6d4d66e14dacbfa892f5b8d3edb8980ba6R21-R21) ```diff -"@seleniumhq/code-export-csharp-commons": "^4.0.1", +"@seleniumhq/code-export-csharp-commons": "^4.0.4", ```
    Best practice
    Improve log message formatting to avoid unintended whitespace. ___ **Avoid using multiline strings with backticks for logging, as it can lead to unintended
    whitespace in logs. Use single-line strings or concatenate strings instead.** [packages/selenium-ide/src/main/session/controllers/System/index.ts [92-94]](https://github.com/SeleniumHQ/selenium-ide/pull/1822/files#diff-4dbd893211cc75242de37cef110ee13c64879374f43a7a94be947eacbc059bb2R92-R94) ```diff -console.warn(` - Failed to locate non-electron driver on startup, - Resetting to electron driver. -`) +console.warn("Failed to locate non-electron driver on startup, Resetting to electron driver.") ```
    Use string concatenation for error messages to improve readability. ___ **Use template literals or string concatenation to include variable values in strings
    instead of using backticks for multi-line strings, which can be error-prone and less
    readable.** [packages/selenium-ide/src/main/session/controllers/System/index.ts [108]](https://github.com/SeleniumHQ/selenium-ide/pull/1822/files#diff-4dbd893211cc75242de37cef110ee13c64879374f43a7a94be947eacbc059bb2R108-R108) ```diff -await this.crash( - `Unable to startup due to chromedriver error: ${startupError}` -) +await this.crash("Unable to startup due to chromedriver error: " + startupError) ```
    Lock dependency versions to specific numbers to ensure consistent behavior. ___ **Consider locking the version of the new dependencies to a specific version rather than
    using the caret (^) version range. This can help ensure consistent behavior across
    different environments and deployments by avoiding unexpected updates.** [packages/side-runner/package.json [26-27]](https://github.com/SeleniumHQ/selenium-ide/pull/1822/files#diff-96a04a4a55cf679557012a90b0f02f60559e36ae5c00f2490d23e54e2cee4cc4R26-R27) ```diff -"@seleniumhq/side-model": "^4.0.2", -"@seleniumhq/side-runtime": "^4.0.7", +"@seleniumhq/side-model": "4.0.2", +"@seleniumhq/side-runtime": "4.0.7", ```
    Possible issue
    Add error handling for potentially undefined store values. ___ **Consider handling the case where browserInfo might not be set in the store, which could
    lead to runtime errors. Implement a check or default value.** [packages/selenium-ide/src/main/session/controllers/System/index.ts [85]](https://github.com/SeleniumHQ/selenium-ide/pull/1822/files#diff-4dbd893211cc75242de37cef110ee13c64879374f43a7a94be947eacbc059bb2R85-R85) ```diff -const browser = this.session.store.get('browserInfo') +const browser = this.session.store.get('browserInfo') || { browser: 'default', useBidi: true, version: 'latest' }; ```
    Verify compatibility of major version increments to prevent breaking changes. ___ **Verify that the major version increment in @seleniumhq/side-model does not introduce
    breaking changes that could affect other packages depending on it, especially when used in
    production environments.** [packages/side-model/package.json [3]](https://github.com/SeleniumHQ/selenium-ide/pull/1822/files#diff-f8769268d0e433706f21e19708392318e9ff47e8ba5730085434feba9f84870aR3-R3) ```diff -"version": "4.0.2", +"version": "4.0.2", # Ensure compatibility with other packages ```
    Bug prevention
    Update dependency versions to match those in related packages to avoid conflicts. ___ **Ensure that the dependency versions used in @seleniumhq/code-export-csharp-nunit are
    up-to-date with the versions specified in @seleniumhq/code-export-csharp-commons to avoid
    version conflicts and potential bugs.** [packages/code-export-csharp-nunit/package.json [22]](https://github.com/SeleniumHQ/selenium-ide/pull/1822/files#diff-7bc67c4298c3f0d942d69d3d6f6594a9d5f0983bf95814427b450e446b33c802R22-R22) ```diff -"side-code-export": "^4.0.5" +"side-code-export": "^4.0.5", +"@seleniumhq/code-export-csharp-commons": "^4.0.4" ```
    Enhancement
    Update to the latest dependency versions for compatibility and feature access. ___ **Update the version of @seleniumhq/side-model and @seleniumhq/side-runtime in
    packages/side-runner/package.json to the latest versions to ensure compatibility with the
    latest features and bug fixes.** [packages/side-runner/package.json [26-27]](https://github.com/SeleniumHQ/selenium-ide/pull/1822/files#diff-96a04a4a55cf679557012a90b0f02f60559e36ae5c00f2490d23e54e2cee4cc4R26-R27) ```diff -"@seleniumhq/side-model": "^4.0.2", -"@seleniumhq/side-runtime": "^4.0.7", +"@seleniumhq/side-model": "^4.0.3", +"@seleniumhq/side-runtime": "^4.0.8", ```