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

[dotnet][rb][java][js][py] Automated Browser Version Update #13886

Merged
merged 1 commit into from
Apr 30, 2024

Conversation

selenium-ci
Copy link
Member

@selenium-ci selenium-ci commented Apr 30, 2024

User description

This is an automated pull request to update pinned browsers and drivers

Merge after verify the new browser versions properly passing the tests and no bugs need to be filed


Type

Enhancement


Description

  • Updated Firefox to version 125.0.3 and Firefox Beta to 126.0b7 for both Linux and Mac platforms.
  • Changed the SHA256 checksums to match the new versions of Firefox and Firefox Beta.
  • Ensures that the browser versions used are up-to-date with the latest releases.

Changes walkthrough

Relevant files
Enhancement
repositories.bzl
Update Firefox and Firefox Beta versions and checksums     

common/repositories.bzl

  • Updated Firefox version from 125.0.2 to 125.0.3 for Linux and Mac.
  • Updated Firefox Beta version from 126.0b6 to 126.0b7 for Linux and
    Mac.
  • Updated the SHA256 checksums for the new browser versions.
  • +8/-8     

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

    Copy link
    Contributor

    PR Description updated to latest commit (b866ca3)

    Copy link
    Contributor

    PR Review

    ⏱️ Estimated effort to review [1-5]

    2, because the changes are straightforward and only involve updating URLs and checksums for browser versions. The structure of the code remains the same, and the changes are repetitive across different sections.

    🧪 Relevant tests

    No

    🔍 Possible issues

    Possible Bug: Ensure that the new checksums match the files at the URLs provided. Incorrect checksums could lead to build failures or security risks if the files are tampered with.

    🔒 Security concerns

    No


    ✨ Review tool usage guide:

    Overview:
    The review tool scans the PR code changes, and generates a PR review which includes several types of feedbacks, such as possible PR issues, security threats and relevant test in the PR. More feedbacks can be added by configuring the tool.

    The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.

    • When commenting, to edit configurations related to the review tool (pr_reviewer section), use the following template:
    /review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...
    
    [pr_reviewer]
    some_config1=...
    some_config2=...
    

    See the review usage page for a comprehensive guide on using this tool.

    Copy link
    Contributor

    PR Code Suggestions

    CategorySuggestions                                                                                                                                                       
    Maintainability
    Use a variable for common URL prefixes to simplify future updates and enhance code readability.

    Consider using a variable for the common URL prefix in the browser download URLs to make
    future updates easier and the code cleaner.

    common/repositories.bzl [14]

    -url = "https://ftp.mozilla.org/pub/firefox/releases/125.0.3/linux-x86_64/en-US/firefox-125.0.3.tar.bz2"
    +firefox_base_url = "https://ftp.mozilla.org/pub/firefox/releases/"
    +url = firefox_base_url + "125.0.3/linux-x86_64/en-US/firefox-125.0.3.tar.bz2"
     
    Abstract repeated browser archive definitions into a reusable function to reduce code duplication.

    Consider abstracting the repeated structure of browser archive definitions into a reusable
    function to reduce code duplication.

    common/repositories.bzl [12-16]

    -http_archive(
    -    name = "linux_firefox",
    -    url = "https://ftp.mozilla.org/pub/firefox/releases/125.0.3/linux-x86_64/en-US/firefox-125.0.3.tar.bz2",
    -    sha256 = "2fb91b8dd196a8ee47238d82d6b7afef3dd1bb3212b29122ab1c3897052d8a49",
    -    build_file_content = """
    -    load("@aspect_rules_js//js:defs.bzl", "js_library")
    -    package(default_visibility = ["//visibility:public"])
    +def define_firefox_archive(name, version, platform, checksum):
    +    http_archive(
    +        name = name,
    +        url = "https://ftp.mozilla.org/pub/firefox/releases/" + version + "/" + platform + "/en-US/firefox-" + version + ".tar.bz2",
    +        sha256 = checksum,
    +        build_file_content = """
    +        load("@aspect_rules_js//js:defs.bzl", "js_library")
    +        package(default_visibility = ["//visibility:public"])
    +define_firefox_archive("linux_firefox", "125.0.3", "linux-x86_64", "2fb91b8dd196a8ee47238d82d6b7afef3dd1bb3212b29122ab1c3897052d8a49")
     
    Best practice
    Ensure URLs are properly URL-encoded to prevent issues.

    Ensure that the URLs are URL-encoded to avoid potential issues with spaces and special
    characters in URLs.

    common/repositories.bzl [36]

    -url = "https://ftp.mozilla.org/pub/firefox/releases/125.0.3/mac/en-US/Firefox%20125.0.3.dmg"
    +url = "https://ftp.mozilla.org/pub/firefox/releases/125.0.3/mac/en-US/Firefox%20125.0.3.dmg"  # Ensure URL is properly encoded
     
    Security
    Verify the SHA256 checksums to ensure the integrity and security of the downloaded files.

    Verify the integrity of the SHA256 checksums for the new browser versions to ensure they
    are correct and have not been tampered with.

    common/repositories.bzl [15]

    -sha256 = "2fb91b8dd196a8ee47238d82d6b7afef3dd1bb3212b29122ab1c3897052d8a49"
    +sha256 = "2fb91b8dd196a8ee47238d82d6b7afef3dd1bb3212b29122ab1c3897052d8a49"  # Verified checksum
     
    Enhancement
    Automate the update of version numbers to avoid manual errors and ensure consistency.

    Update the version numbers in a consistent and automated manner to avoid manual errors and
    maintain consistency across files.

    common/repositories.bzl [75]

    -url = "https://ftp.mozilla.org/pub/firefox/releases/126.0b7/mac/en-US/Firefox%20126.0b7.dmg"
    +version = "126.0b7"
    +url = "https://ftp.mozilla.org/pub/firefox/releases/" + version + "/mac/en-US/Firefox%20" + version + ".dmg"
     

    ✨ Improve tool usage guide:

    Overview:
    The improve tool scans the PR code changes, and automatically generates suggestions for improving the PR code. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on a PR.

    • When commenting, to edit configurations related to the improve tool (pr_code_suggestions section), use the following template:
    /improve --pr_code_suggestions.some_config1=... --pr_code_suggestions.some_config2=...
    
    [pr_code_suggestions]
    some_config1=...
    some_config2=...
    

    See the improve usage page for a comprehensive guide on using this tool.

    Copy link
    Contributor

    qodo-merge-pro bot commented Apr 30, 2024

    CI Failure Feedback

    (Checks updated until commit b866ca3)

    Action: Python / Mypy

    Failed stage: [❌]

    Failed test name: mypy type checking

    Failure summary:

    The action failed due to multiple type checking errors detected by mypy. The errors include issues
    with attribute definitions, incompatible types in assignments, missing type annotations, and
    incorrect method signatures across various files in the Selenium project. These issues must be
    resolved to pass the mypy static type checking.

    Relevant error logs:
    1:  ##[group]Operating System
    2:  Ubuntu
    ...
    
    201:  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.8.18/x64
    202:  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.8.18/x64/lib
    203:  TOXENV: mypy
    204:  ##[endgroup]
    205:  mypy: install_deps /home/runner/work/selenium/selenium/py> python -I -m pip install lxml==4.9.1 mypy==1.4.1 trio-typing==0.7.0 types-certifi==2021.10.8.3 types-urllib3==1.26.25
    206:  mypy: freeze /home/runner/work/selenium/selenium/py> python -m pip freeze --all
    207:  mypy: attrs==23.2.0,exceptiongroup==1.2.1,idna==3.7,lxml==4.9.1,mypy==1.4.1,mypy-extensions==1.0.0,outcome==1.3.0.post0,pip==24.0,setuptools==69.5.1,sniffio==1.3.1,sortedcontainers==2.4.0,tomli==2.0.1,trio==0.25.0,trio-typing==0.7.0,types-certifi==2021.10.8.3,types-urllib3==1.26.25,typing_extensions==4.11.0,wheel==0.43.0
    208:  mypy: commands[0] /home/runner/work/selenium/selenium/py> mypy --install-types --cobertura-xml-report ci
    209:  selenium/webdriver/common/timeouts.py:135: error: "Timeouts" has no attribute "_implicit_wait"; maybe "implicit_wait"?  [attr-defined]
    210:  selenium/webdriver/common/timeouts.py:136: error: "Timeouts" has no attribute "_implicit_wait"; maybe "implicit_wait"?  [attr-defined]
    211:  selenium/webdriver/common/timeouts.py:137: error: "Timeouts" has no attribute "_page_load"; maybe "page_load"?  [attr-defined]
    212:  selenium/webdriver/common/timeouts.py:138: error: "Timeouts" has no attribute "_page_load"; maybe "page_load"?  [attr-defined]
    213:  selenium/webdriver/common/timeouts.py:139: error: "Timeouts" has no attribute "_script"; maybe "script"?  [attr-defined]
    214:  selenium/webdriver/common/timeouts.py:140: error: "Timeouts" has no attribute "_script"; maybe "script"?  [attr-defined]
    215:  selenium/webdriver/common/print_page_options.py:137: error: Argument 2 to "isinstance" has incompatible type "None"; expected "_ClassInfo"  [arg-type]
    216:  selenium/webdriver/common/print_page_options.py:138: error: "None" has no attribute "__name__"  [attr-defined]
    217:  selenium/webdriver/common/print_page_options.py:145: error: Incompatible types in assignment (expression has type "Type[bool]", base class "_ValidateTypeDescriptor" defined the type as "None")  [assignment]
    218:  selenium/webdriver/common/print_page_options.py:151: error: Incompatible types in assignment (expression has type "Type[bool]", base class "_ValidateTypeDescriptor" defined the type as "None")  [assignment]
    219:  selenium/webdriver/common/print_page_options.py:157: error: Incompatible types in assignment (expression has type "Type[List[Any]]", base class "_ValidateTypeDescriptor" defined the type as "None")  [assignment]
    220:  selenium/webdriver/common/options.py:392: error: Incompatible types in assignment (expression has type "Dict[str, str]", variable has type "None")  [assignment]
    221:  selenium/webdriver/common/options.py:394: error: Unsupported target for indexed assignment ("None")  [index]
    222:  selenium/webdriver/common/options.py:396: error: Unsupported target for indexed assignment ("None")  [index]
    223:  selenium/webdriver/common/options.py:413: error: Need type annotation for "_arguments" (hint: "_arguments: List[<type>] = ...")  [var-annotated]
    224:  selenium/webdriver/common/actions/input_device.py:27: error: Need type annotation for "actions" (hint: "actions: List[<type>] = ...")  [var-annotated]
    225:  selenium/webdriver/ie/options.py:365: error: Need type annotation for "_options" (hint: "_options: Dict[<type>, <type>] = ...")  [var-annotated]
    226:  selenium/webdriver/ie/options.py:366: error: Need type annotation for "_additional" (hint: "_additional: Dict[<type>, <type>] = ...")  [var-annotated]
    227:  selenium/webdriver/common/selenium_manager.py:66: error: Incompatible types in assignment (expression has type "Path", variable has type "Optional[str]")  [assignment]
    228:  selenium/webdriver/common/selenium_manager.py:85: error: Incompatible types in assignment (expression has type "Path", variable has type "Optional[str]")  [assignment]
    229:  selenium/webdriver/common/selenium_manager.py:87: error: Item "str" of "Optional[str]" has no attribute "is_file"  [union-attr]
    230:  selenium/webdriver/common/selenium_manager.py:87: error: Item "None" of "Optional[str]" has no attribute "is_file"  [union-attr]
    231:  selenium/webdriver/common/selenium_manager.py:92: error: Incompatible return value type (got "Optional[str]", expected "Path")  [return-value]
    232:  selenium/webdriver/common/log.py:48: error: Item "None" of "Optional[bytes]" has no attribute "decode"  [union-attr]
    233:  selenium/webdriver/common/log.py:50: error: Argument 1 to "asynccontextmanager" has incompatible type "Callable[[Log], Dict[Any, Any]]"; expected "Callable[[Log], AsyncIterator[<nothing>]]"  [arg-type]
    234:  selenium/webdriver/common/log.py:51: error: The return type of an async generator function should be "AsyncGenerator" or one of its supertypes  [misc]
    235:  selenium/webdriver/common/log.py:79: error: Need type annotation for "event" (hint: "event: Dict[<type>, <type>] = ...")  [var-annotated]
    236:  selenium/webdriver/common/log.py:116: error: Argument 1 to "asynccontextmanager" has incompatible type "Callable[[Log, Any], Dict[Any, Any]]"; expected "Callable[[Log, Any], AsyncIterator[<nothing>]]"  [arg-type]
    237:  selenium/webdriver/common/log.py:117: error: The return type of an async generator function should be "AsyncGenerator" or one of its supertypes  [misc]
    238:  selenium/webdriver/chromium/options.py:34: error: Need type annotation for "_extension_files" (hint: "_extension_files: List[<type>] = ...")  [var-annotated]
    239:  selenium/webdriver/chromium/options.py:35: error: Need type annotation for "_extensions" (hint: "_extensions: List[<type>] = ...")  [var-annotated]
    240:  selenium/webdriver/chromium/options.py:36: error: Need type annotation for "_experimental_options" (hint: "_experimental_options: Dict[<type>, <type>] = ...")  [var-annotated]
    241:  selenium/webdriver/chromium/options.py:58: error: Incompatible return value type (got "None", expected "str")  [return-value]
    242:  selenium/webdriver/chromium/options.py:70: error: Incompatible types in assignment (expression has type "str", variable has type "None")  [assignment]
    243:  selenium/webdriver/chrome/options.py:31: error: Argument 1 of "enable_mobile" is incompatible with supertype "BaseOptions"; supertype defines the argument type as "Optional[str]"  [override]
    244:  selenium/webdriver/chrome/options.py:31: note: This violates the Liskov substitution principle
    245:  selenium/webdriver/chrome/options.py:31: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
    246:  selenium/webdriver/common/bidi/cdp.py:240: error: Need type annotation for "sender"  [var-annotated]
    247:  selenium/webdriver/common/bidi/cdp.py:240: error: Need type annotation for "receiver"  [var-annotated]
    248:  selenium/webdriver/common/bidi/cdp.py:417: error: Item "None" of "Optional[Any]" has no attribute "target"  [union-attr]
    249:  selenium/webdriver/common/utils.py:133: error: Argument 1 to "append" of "list" has incompatible type "Union[<subclass of "str" and "Keys">, <subclass of "int" and "Keys">, <subclass of "float" and "Keys">]"; expected "str"  [arg-type]
    250:  selenium/webdriver/remote/webelement.py:229: error: Incompatible types in assignment (expression has type "str", variable has type "Tuple[str, ...]")  [assignment]
    251:  selenium/webdriver/remote/remote_connection.py:139: error: Module has no attribute "_GLOBAL_DEFAULT_TIMEOUT"  [attr-defined]
    252:  selenium/webdriver/remote/file_detector.py:47: error: Missing return statement  [return]
    253:  selenium/webdriver/common/service.py:60: error: Incompatible types in assignment (expression has type "None", variable has type "TextIOWrapper")  [assignment]
    254:  selenium/webdriver/common/service.py:62: error: Incompatible types in assignment (expression has type "int", variable has type "TextIOWrapper")  [assignment]
    255:  selenium/webdriver/common/service.py:64: error: Incompatible types in assignment (expression has type "Union[int, IO[Any]]", variable has type "TextIOWrapper")  [assignment]
    256:  selenium/webdriver/common/service.py:85: error: Incompatible return value type (got "Optional[str]", expected "str")  [return-value]
    257:  selenium/webdriver/common/service.py:98: error: Argument 1 to "_start_process" of "Service" has incompatible type "Optional[str]"; expected "str"  [arg-type]
    258:  selenium/webdriver/common/service.py:204: error: Module has no attribute "STARTUPINFO"  [attr-defined]
    259:  selenium/webdriver/common/service.py:205: error: Module has no attribute "CREATE_NEW_CONSOLE"  [attr-defined]
    260:  selenium/webdriver/common/service.py:205: error: Module has no attribute "STARTF_USESHOWWINDOW"  [attr-defined]
    261:  selenium/webdriver/common/service.py:206: error: Module has no attribute "SW_HIDE"  [attr-defined]
    262:  selenium/webdriver/common/service.py:231: error: Value of type variable "AnyOrLiteralStr" of "basename" cannot be "Optional[str]"  [type-var]
    263:  selenium/webdriver/wpewebkit/service.py:38: error: Incompatible default for argument "executable_path" (default has type "Optional[str]", argument has type "str")  [assignment]
    264:  selenium/webdriver/wpewebkit/service.py:52: error: Unused "type: ignore" comment  [unused-ignore]
    265:  selenium/webdriver/webkitgtk/service.py:52: error: Unused "type: ignore" comment  [unused-ignore]
    266:  selenium/webdriver/safari/remote_connection.py:23: error: Incompatible types in assignment (expression has type "str", base class "RemoteConnection" defined the type as "None")  [assignment]
    267:  selenium/webdriver/remote/switch_to.py:93: error: Argument 1 to "NoSuchFrameException" has incompatible type "Union[str, int, WebElement]"; expected "Optional[str]"  [arg-type]
    268:  selenium/webdriver/firefox/remote_connection.py:23: error: Incompatible types in assignment (expression has type "object", base class "RemoteConnection" defined the type as "None")  [assignment]
    269:  selenium/webdriver/firefox/options.py:60: error: Incompatible types in assignment (expression has type "Union[str, FirefoxBinary]", variable has type "str")  [assignment]
    270:  selenium/webdriver/firefox/options.py:86: error: Incompatible return value type (got "None", expected "FirefoxProfile")  [return-value]
    271:  selenium/webdriver/firefox/options.py:94: error: Incompatible types in assignment (expression has type "FirefoxProfile", variable has type "None")  [assignment]
    272:  selenium/webdriver/firefox/options.py:96: error: Argument 1 of "enable_mobile" is incompatible with supertype "BaseOptions"; supertype defines the argument type as "Optional[str]"  [override]
    273:  selenium/webdriver/firefox/options.py:96: note: This violates the Liskov substitution principle
    274:  selenium/webdriver/firefox/options.py:96: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
    275:  selenium/webdriver/firefox/options.py:111: error: Incompatible types in assignment (expression has type "Dict[Any, Any]", target has type "str")  [assignment]
    276:  selenium/webdriver/firefox/options.py:115: error: Incompatible types in assignment (expression has type "List[Any]", target has type "str")  [assignment]
    277:  selenium/webdriver/common/actions/wheel_input.py:76: error: Signature of "create_pause" incompatible with supertype "InputDevice"  [override]
    278:  selenium/webdriver/common/actions/wheel_input.py:76: note:      Superclass:
    279:  selenium/webdriver/common/actions/wheel_input.py:76: note:          def create_pause(self, duration: int = ...) -> Any
    280:  selenium/webdriver/common/actions/wheel_input.py:76: note:      Subclass:
    281:  selenium/webdriver/common/actions/wheel_input.py:76: note:          def create_pause(self, pause_duration: float) -> None
    282:  selenium/webdriver/common/actions/pointer_input.py:63: error: Signature of "create_pause" incompatible with supertype "InputDevice"  [override]
    283:  selenium/webdriver/common/actions/pointer_input.py:63: note:      Superclass:
    284:  selenium/webdriver/common/actions/pointer_input.py:63: note:          def create_pause(self, duration: int = ...) -> Any
    285:  selenium/webdriver/common/actions/pointer_input.py:63: note:      Subclass:
    286:  selenium/webdriver/common/actions/pointer_input.py:63: note:          def create_pause(self, pause_duration: float) -> None
    287:  selenium/webdriver/chromium/service.py:47: error: Incompatible types in assignment (expression has type "None", variable has type "TextIOWrapper")  [assignment]
    288:  selenium/webdriver/chromium/service.py:49: error: Incompatible types in assignment (expression has type "Union[int, IO[Any], None]", variable has type "TextIOWrapper")  [assignment]
    289:  selenium/webdriver/chromium/remote_connection.py:31: error: Incompatible types in assignment (expression has type "str", variable has type "None")  [assignment]
    290:  selenium/webdriver/common/actions/wheel_actions.py:25: error: Argument 1 to "__init__" of "Interaction" has incompatible type "WheelInput"; expected "str"  [arg-type]
    291:  selenium/webdriver/common/actions/wheel_actions.py:28: error: "str" has no attribute "create_pause"  [attr-defined]
    292:  selenium/webdriver/common/actions/pointer_actions.py:36: error: Incompatible types in assignment (expression has type "PointerInput", variable has type "str")  [assignment]
    293:  selenium/webdriver/common/actions/pointer_actions.py:38: error: Argument 1 to "__init__" of "Interaction" has incompatible type "PointerInput"; expected "str"  [arg-type]
    294:  selenium/webdriver/common/actions/pointer_actions.py:199: error: "str" has no attribute "create_pause"  [attr-defined]
    295:  selenium/webdriver/common/actions/key_actions.py:31: error: Incompatible types in assignment (expression has type "Union[KeyInput, PointerInput, WheelInput]", variable has type "str")  [assignment]
    296:  selenium/webdriver/common/actions/key_actions.py:32: error: Argument 1 to "__init__" of "Interaction" has incompatible type "Union[KeyInput, PointerInput, WheelInput]"; expected "str"  [arg-type]
    297:  selenium/webdriver/common/actions/action_builder.py:52: error: Argument 1 to "filter" has incompatible type "Callable[[Any], bool]"; expected "Callable[[InputDevice], TypeGuard[Union[WheelInput, PointerInput, KeyInput, None]]]"  [arg-type]
    298:  selenium/webdriver/common/actions/action_builder.py:56: error: List comprehension has incompatible type List[InputDevice]; expected List[PointerInput]  [misc]
    299:  selenium/webdriver/common/actions/action_builder.py:56: error: "InputDevice" has no attribute "type"  [attr-defined]
    300:  selenium/webdriver/common/actions/action_builder.py:60: error: List comprehension has incompatible type List[InputDevice]; expected List[KeyInput]  [misc]
    301:  selenium/webdriver/common/actions/action_builder.py:60: error: "InputDevice" has no attribute "type"  [attr-defined]
    302:  selenium/webdriver/common/actions/action_builder.py:90: error: Need type annotation for "enc"  [var-annotated]
    303:  selenium/webdriver/common/actions/action_builder.py:92: error: "InputDevice" has no attribute "encode"  [attr-defined]
    304:  selenium/webdriver/common/action_chains.py:277: error: Argument 1 to "pause" of "KeyActions" has incompatible type "Union[float, int]"; expected "int"  [arg-type]
    305:  selenium/webdriver/remote/webdriver.py:107: error: Need type annotation for "capabilities"  [var-annotated]
    306:  selenium/webdriver/remote/webdriver.py:132: error: "int" has no attribute "__delitem__"  [attr-defined]
    307:  selenium/webdriver/remote/webdriver.py:188: error: Item "None" of "Optional[BaseOptions]" has no attribute "to_capabilities"  [union-attr]
    308:  selenium/webdriver/remote/webdriver.py:189: error: Item "BaseOptions" of "Optional[BaseOptions]" has no attribute "_ignore_local_proxy"  [union-attr]
    309:  selenium/webdriver/remote/webdriver.py:189: error: Item "None" of "Optional[BaseOptions]" has no attribute "_ignore_local_proxy"  [union-attr]
    310:  selenium/webdriver/remote/webdriver.py:200: error: Need type annotation for "caps" (hint: "caps: Dict[<type>, <type>] = ...")  [var-annotated]
    311:  selenium/webdriver/remote/webdriver.py:201: error: Need type annotation for "pinned_scripts" (hint: "pinned_scripts: Dict[<type>, <type>] = ...")  [var-annotated]
    312:  selenium/webdriver/remote/webdriver.py:345: error: Item "str" of "Union[str, RemoteConnection]" has no attribute "execute"  [union-attr]
    313:  selenium/webdriver/remote/webdriver.py:472: error: Item "str" of "Union[str, RemoteConnection]" has no attribute "close"  [union-attr]
    314:  selenium/webdriver/remote/webdriver.py:515: error: Need type annotation for "options" (hint: "options: Dict[<type>, <type>] = ...")  [var-annotated]
    315:  selenium/webdriver/remote/webdriver.py:517: error: Incompatible types in assignment (expression has type "_PrintOpts", variable has type "Dict[Any, Any]")  [assignment]
    316:  selenium/webdriver/remote/webdriver.py:755: error: Item "None" of "Optional[bytes]" has no attribute "decode"  [union-attr]
    317:  selenium/webdriver/remote/webdriver.py:1079: error: Incompatible return value type (got "None", expected "str")  [return-value]
    318:  selenium/webdriver/chromium/webdriver.py:49: error: Argument 1 to "DriverFinder" has incompatible type "Optional[Service]"; expected "Service"  [arg-type]
    319:  selenium/webdriver/chromium/webdriver.py:51: error: "ArgOptions" has no attribute "binary_location"  [attr-defined]
    320:  selenium/webdriver/chromium/webdriver.py:54: error: Item "None" of "Optional[Service]" has no attribute "path"  [union-attr]
    321:  selenium/webdriver/chromium/webdriver.py:55: error: Item "None" of "Optional[Service]" has no attribute "start"  [union-attr]
    322:  selenium/webdriver/chromium/webdriver.py:58: error: Item "None" of "Optional[Service]" has no attribute "service_url"  [union-attr]
    323:  selenium/webdriver/chromium/webdriver.py:59: error: Argument "browser_name" to "ChromiumRemoteConnection" has incompatible type "Optional[str]"; expected "str"  [arg-type]
    324:  selenium/webdriver/chromium/webdriver.py:60: error: Argument "vendor_prefix" to "ChromiumRemoteConnection" has incompatible type "Optional[str]"; expected "str"  [arg-type]
    325:  selenium/webdriver/chromium/webdriver.py:193: error: Item "None" of "Optional[Service]" has no attribute "stop"  [union-attr]
    326:  selenium/webdriver/edge/remote_connection.py:24: error: Incompatible types in assignment (expression has type "str", base class "RemoteConnection" defined the type as "None")  [assignment]
    327:  selenium/webdriver/edge/remote_connection.py:35: error: Cannot determine type of "browser_name"  [has-type]
    328:  selenium/webdriver/edge/remote_connection.py:37: error: Argument "ignore_proxy" to "__init__" of "ChromiumRemoteConnection" has incompatible type "Optional[bool]"; expected "bool"  [arg-type]
    329:  selenium/webdriver/chrome/remote_connection.py:24: error: Incompatible types in assignment (expression has type "str", base class "RemoteConnection" defined the type as "None")  [assignment]
    330:  selenium/webdriver/chrome/remote_connection.py:35: error: Cannot determine type of "browser_name"  [has-type]
    331:  selenium/webdriver/chrome/remote_connection.py:37: error: Argument "ignore_proxy" to "__init__" of "ChromiumRemoteConnection" has incompatible type "Optional[bool]"; expected "bool"  [arg-type]
    332:  selenium/webdriver/support/wait.py:75: error: Argument 1 to "append" of "list" has incompatible type "Iterable[Type[Exception]]"; expected "Type[Exception]"  [arg-type]
    333:  selenium/webdriver/support/expected_conditions.py:263: error: Unsupported right operand type for in ("Optional[str]")  [operator]
    334:  selenium/webdriver/support/expected_conditions.py:304: error: Argument 1 to "frame" of "SwitchTo" has incompatible type "Union[Tuple[str, str], str]"; expected "Union[str, int, WebElement]"  [arg-type]
    335:  selenium/webdriver/support/event_firing_webdriver.py:71: error: Cannot assign to a method  [method-assign]
    336:  Generated Cobertura report: /home/runner/work/selenium/selenium/py/ci/cobertura.xml
    337:  Found 115 errors in 37 files (checked 99 source files)
    338:  mypy: exit 1 (2.60 seconds) /home/runner/work/selenium/selenium/py> mypy --install-types --cobertura-xml-report ci pid=2180
    339:  mypy: FAIL code 1 (6.84=setup[4.24]+cmd[2.60] seconds)
    340:  evaluation failed :( (6.98 seconds)
    ...
    
    364:  �[0;90mproject root:�[0m .
    365:  �[0;32mYaml not found, that's ok! Learn more at�[0m �[0;36mhttp://docs.codecov.io/docs/codecov-yaml�[0m
    366:  �[0;90m->�[0m Found 1 reports
    367:  �[0;90m==>�[0m Detecting git/mercurial file structure
    368:  �[0;90m==>�[0m Reading reports
    369:  �[0;32m+�[0m py/ci/cobertura.xml �[0;90mbytes=428500�[0m
    370:  �[0;90m==>�[0m Appending adjustments
    371:  �[0;36mhttps://docs.codecov.io/docs/fixing-reports�[0m
    372:  /dev/fd/63: line 1717: echo: write error: Broken pipe
    373:  �[0;32m+�[0m Found adjustments
    374:  �[0;90m==>�[0m Gzipping contents
    375:  92K	/tmp/codecov.p7EMzI.gz
    376:  �[0;90m==>�[0m Uploading reports
    377:  �[0;90murl:�[0m https://codecov.io
    378:  �[0;90mquery:�[0m branch=pinned-browser-updates&commit=071e8a80ee9074e0179c1470cd59ddbe7fa4ef77&build=8887377157&build_url=https%3A%2F%2Fgithub.com%2FSeleniumHQ%2Fselenium%2Factions%2Fruns%2F8887377157&name=&tag=&slug=SeleniumHQ%2Fselenium&service=github-actions&flags=&pr=13886&job=CI&cmd_args=f
    379:  �[0;90m->�[0m  Pinging Codecov
    380:  https://codecov.io/upload/v4?package=bash-1.0.6&token=<hidden>&package=bash-1.0.6&token=&branch=pinned-browser-updates&commit=071e8a80ee9074e0179c1470cd59ddbe7fa4ef77&build=8887377157&build_url=https%3A%2F%2Fgithub.com%2FSeleniumHQ%2Fselenium%2Factions%2Fruns%2F8887377157&name=&tag=&slug=SeleniumHQ%2Fselenium&service=github-actions&flags=&pr=13886&job=CI&cmd_args=f
    381:  �[0;31m{'detail': ErrorDetail(string='Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected available in 2323 seconds.', code='throttled')}{'detail': ErrorDetail(string='Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected available in 0 seconds.', code='throttled')}{'detail': ErrorDetail(string='Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected available in 1278 seconds.', code='throttled')}{'detail': ErrorDetail(string='Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected available in 3599 seconds.', code='throttled')}{'detail': ErrorDetail(string='Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected available in 3599 seconds.', code='throttled')}{'detail': ErrorDetail(string='Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected available in 0 seconds.', code='throttled')}
    382:  429�[0m
    383:  �[0;90m==>�[0m Uploading to Codecov
    384:  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    385:  Dload  Upload   Total   Spent    Left  Speed
    386:  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    387:  99 91712    0     0  100 91532      0   106k --:--:-- --:--:-- --:--:--  106k
    388:  100 91712  100   180  100 91532    213   106k --:--:-- --:--:-- --:--:--  106k
    389:  Warning: Transient problem: HTTP error Will retry in 3600 seconds. 5 retries 
    390:  Warning: left.
    391:  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    392:  100 91710  100   178  100 91532    274   137k --:--:-- --:--:-- --:--:--  138k
    393:  Warning: Transient problem: HTTP error Will retry in 2 seconds. 4 retries 
    394:  Warning: left.
    395:  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    396:  99 91712    0     0  100 91532      0   231k --:--:-- --:--:-- --:--:--  230k
    397:  100 91712  100   180  100 91532    465   230k --:--:-- --:--:-- --:--:--  230k
    398:  Warning: Transient problem: HTTP error Will retry in 3598 seconds. 3 retries 
    399:  Warning: left.
    400:  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    401:  100 91532    0     0  100 91532      0  73401  0:00:01  0:00:01 --:--:-- 73460
    402:  100 91712  100   180  100 91532    120  61102  0:00:01  0:00:01 --:--:-- 61222
    403:  Warning: Transient problem: HTTP error Will retry in 3600 seconds. 2 retries 
    404:  Warning: left.
    405:  ##[error]The operation was canceled.
    

    ✨ 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.

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

    Successfully merging this pull request may close these issues.

    2 participants