Skip to content

Commit a9a06fd

Browse files
authored
Merge branch 'master' into bidirectional_mask_attention_gpu_support
2 parents 83fca35 + 53ef535 commit a9a06fd

File tree

1,264 files changed

+50509
-13920
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,264 files changed

+50509
-13920
lines changed

.github/actions/handle_docker/images_api.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,23 @@ def build(self, dry: bool = False, push: bool = True, docker_builder: str = None
5454
cache_cmd += f"--cache-from type=registry,ref={self.base_ref()}-cache "
5555

5656
if export_cache:
57-
cache_cmd += f"--cache-to type=registry,ref={self.ref()}-cache,mode=max "
57+
cache_cmd += f"--cache-to type=registry,ref={self.ref()}-cache,"
58+
cache_cmd += "mode=max,compression=zstd,compression-level=22,"
59+
cache_cmd += "force-compression=true,oci-mediatypes=true "
5860

59-
build_cmd = f"docker buildx build --builder={docker_builder}" if docker_builder else "docker build"
60-
push_cmd = f"--push" if push else ""
61+
build_cmd = f"docker buildx build --builder={docker_builder}"
62+
63+
output = f"--output type=image,compression=zstd,compression-level=22,"
64+
output += "force-compression=true,oci-mediatypes=true"
65+
output += f",name={self.ref()}"
66+
output += ",push=true" if push else ""
6167

6268
cmd = f"{build_cmd} " \
6369
f"--file {self.dockerfile} " \
6470
f"--tag {self.ref()} " \
6571
f"--build-arg REGISTRY={self.registry}/dockerio " \
6672
f"{cache_cmd} " \
67-
f"{push_cmd} " \
73+
f"{output} " \
6874
"."
6975

7076
run(cmd, dry)

.github/actions/setup_python/action.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,10 @@ runs:
6565
$pipVersion = python3 -c "import pip; print(pip.__version__)"
6666
Write-Host "Using pip version: $pipVersion"
6767
"PIP_CACHE_DIR=${{ inputs.pip-cache-path }}/$pipVersion" >> $env:GITHUB_ENV
68+
69+
# See PR #34185 for details, this is just for debug purposes and will be reverted
70+
- if: ${{ runner.os == 'Windows' }}
71+
name: Set PIP_INSTALL_COMMAND variable for Windows
72+
shell: pwsh
73+
run: |
74+
"PIP_INSTALL_COMMAND=python3 c:/pip_diag.py install" >> $env:GITHUB_ENV

.github/copilot-instructions.md

Lines changed: 209 additions & 0 deletions
Large diffs are not rendered by default.

.github/dockerfiles/docker_tag

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
pr-33888
1+
pr-34596

.github/dockerfiles/ov_build/fedora_29/Dockerfile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ USER root
77
RUN echo "timeout=60" >> /etc/dnf/dnf.conf && \
88
echo "retries=10" >> /etc/dnf/dnf.conf
99

10+
# Hackity hack: Fedora 29 is out of support for so long now
11+
# that we need to steal `ca-certificates` from Rocky Linux 8 repos
12+
# to trust "storage.openvinotoolkit.org" again
13+
RUN rpm -ihv --force https://download.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/Packages/c/ca-certificates-2025.2.80_v9.0.304-80.2.el8_10.noarch.rpm
14+
1015
RUN dnf update -y && dnf install -y \
1116
git \
1217
curl \

.github/dockerfiles/ov_test/ubuntu_22_04_riscv_xuantie/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ RUN apt-get update && \
4242
rm -rf /var/lib/apt/lists/*
4343

4444
# build xuintie qemu emulator only
45-
ARG XUANTIE_VERSION="V2.8.1"
45+
ARG XUANTIE_VERSION="V2.10.2"
4646
ARG XUANTIE_REPO="https://github.com/XUANTIE-RV/xuantie-gnu-toolchain"
4747
ARG XUINTIE_PATH="/opt/riscv"
4848
ARG XUINTIE_TMP_PATH="/tmp/xuantie"

.github/pull_request_template.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,7 @@
44

55
### Tickets:
66
- *ticket-id*
7+
8+
### AI Assistance:
9+
- *AI assistance used: no / yes*
10+
- *If yes, summarize how AI was used and what human validation was performed (build/tests/manual checks).*

.github/scripts/check_copyright.py

Lines changed: 76 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
Handles C++ files (.cpp, .hpp, .h) and Python files (.py).
88
"""
99

10+
import difflib
1011
import os
12+
import re
1113
import sys
1214
from datetime import datetime
1315
from pathlib import Path
@@ -34,6 +36,31 @@ def is_supported_file_type(file_path: str) -> bool:
3436
return get_file_type_info(file_path) is not None
3537

3638

39+
def get_encoding_line_number(file_path: str) -> int:
40+
"""
41+
Detect encoding declaration in Python files.
42+
Returns the line number (0-indexed) if found, -1 otherwise.
43+
Encoding must be in the first or second line per PEP 263.
44+
"""
45+
if not file_path.endswith('.py'):
46+
return -1
47+
48+
encoding_pattern = r'^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)'
49+
50+
try:
51+
with open(file_path, 'r', encoding='utf-8-sig', errors='ignore') as f:
52+
for i in range(2): # Check first two lines per PEP 263
53+
line = f.readline()
54+
if not line:
55+
break
56+
if re.match(encoding_pattern, line):
57+
return i
58+
except Exception:
59+
pass
60+
61+
return -1
62+
63+
3764
def get_expected_header(file_path: str) -> str:
3865
"""Get the expected copyright header for a file."""
3966
info = get_file_type_info(file_path)
@@ -55,10 +82,18 @@ def should_check_file(file_path: str) -> bool:
5582

5683

5784
def get_file_header(file_path: str, num_lines: int = 3) -> str:
58-
"""Read the first few lines of a file, handling BOM if present."""
85+
"""Read the first few lines of a file, handling BOM and encoding declaration if present."""
5986
try:
6087
with open(file_path, 'r', encoding='utf-8-sig', errors='ignore') as f:
61-
return ''.join(f.readline() for _ in range(num_lines))
88+
all_lines = [f.readline() for _ in range(num_lines + 2)] # Read extra lines to account for encoding
89+
90+
# For Python files, skip the encoding line when checking copyright
91+
encoding_line = get_encoding_line_number(file_path)
92+
if encoding_line >= 0:
93+
# Skip encoding line and return the copyright-relevant lines
94+
return ''.join(all_lines[encoding_line + 1:encoding_line + 1 + num_lines])
95+
96+
return ''.join(all_lines[:num_lines])
6297
except Exception as e:
6398
print(f"Warning: Could not read {file_path}: {e}")
6499
return ""
@@ -82,39 +117,54 @@ def generate_diff(file_path: str) -> str:
82117
"""Generate a unified diff for fixing the copyright header."""
83118
try:
84119
with open(file_path, 'r', encoding='utf-8-sig', errors='ignore') as f:
85-
lines = f.read().split('\n')
120+
original_lines = f.readlines()
86121
except Exception as e:
87122
raise IOError(f"Could not read {file_path}: {e}")
88-
123+
89124
info = get_file_type_info(file_path)
90125
if not info:
91126
return ""
92-
127+
93128
comment_style, has_extra_line = info
94129
current_year = datetime.now().year
95-
has_copyright = any('Copyright' in line or 'SPDX-License-Identifier' in line
96-
for line in lines[:5])
97-
98-
diff_lines = [f"--- a/{file_path}", f"+++ b/{file_path}"]
99-
130+
131+
encoding_line = get_encoding_line_number(file_path)
132+
header_start = encoding_line + 1 if encoding_line >= 0 else 0
133+
134+
has_copyright = any('Copyright' in line or 'SPDX-License-Identifier' in line
135+
for line in original_lines[header_start:header_start + 5])
136+
137+
correct_header = [
138+
f"{comment_style} Copyright (C) 2018-{current_year} Intel Corporation\n",
139+
f"{comment_style} SPDX-License-Identifier: Apache-2.0\n",
140+
]
141+
if has_extra_line:
142+
correct_header.append(f"{comment_style}\n")
143+
correct_header.append("\n")
144+
145+
corrected_lines = list(original_lines)
100146
if has_copyright:
101-
# Wrong year - replace first line only
102-
diff_lines.extend([
103-
"@@ -1 +1 @@",
104-
f"-{lines[0]}",
105-
f"+{comment_style} Copyright (C) 2018-{current_year} Intel Corporation"
106-
])
147+
# Walk the actual contiguous comment block so we never overwrite lines beyond it.
148+
block_end = header_start
149+
while block_end < len(original_lines) and original_lines[block_end].startswith(comment_style):
150+
block_end += 1
151+
# Include the single trailing blank line that separates the header from code
152+
if block_end < len(original_lines) and original_lines[block_end].strip() == '':
153+
block_end += 1
154+
corrected_lines[header_start:block_end] = correct_header
107155
else:
108-
# Missing copyright - insert at beginning
109-
num_lines = 4 if has_extra_line else 3
110-
diff_lines.append(f"@@ -0,0 +1,{num_lines} @@")
111-
diff_lines.append(f"+{comment_style} Copyright (C) 2018-{current_year} Intel Corporation")
112-
diff_lines.append(f"+{comment_style} SPDX-License-Identifier: Apache-2.0")
113-
if has_extra_line:
114-
diff_lines.append(f"+{comment_style}")
115-
diff_lines.append("+")
116-
117-
return '\n'.join(diff_lines) + '\n'
156+
# Insert the header at the right position (after encoding line if present)
157+
corrected_lines[header_start:header_start] = correct_header
158+
159+
normalized_path = file_path.lstrip('/')
160+
diff = difflib.unified_diff(
161+
[l.rstrip('\n') for l in original_lines],
162+
[l.rstrip('\n') for l in corrected_lines],
163+
fromfile=f"a/{normalized_path}",
164+
tofile=f"b/{normalized_path}",
165+
lineterm='',
166+
)
167+
return '\n'.join(diff) + '\n'
118168

119169

120170
def main():

.github/scripts/workflow_rerun/errors_to_look_for.json

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"ticket": 135715
99
},
1010
{
11-
"error_text": "error: RPC failed",
11+
"error_text": "GnuTLS recv error",
1212
"ticket": 131918
1313
},
1414
{
@@ -87,18 +87,6 @@
8787
"error_text": "because the GET request got Content-Type",
8888
"ticket": 158400
8989
},
90-
{
91-
"error_text": "Unable to make request:",
92-
"ticket": 158401
93-
},
94-
{
95-
"error_text": "Failed to make request",
96-
"ticket": 158401
97-
},
98-
{
99-
"error_text": "Unable to download artifact",
100-
"ticket": 158401
101-
},
10290
{
10391
"error_text": "Failure when receiving data from the peer",
10492
"ticket": 159323
@@ -162,5 +150,45 @@
162150
{
163151
"error_text": "urllib3.exceptions.IncompleteRead",
164152
"ticket": 173184
153+
},
154+
{
155+
"error_text": "Error from intermediary with HTTP status code 403",
156+
"ticket": 181450
157+
},
158+
{
159+
"error_text": "terminal prompts disabled",
160+
"ticket": 181095
161+
},
162+
{
163+
"error_text": "HTTP 500 curl 22 The requested URL returned error: 500",
164+
"ticket": 181530
165+
},
166+
{
167+
"error_text": "Unable to make request: ECONNREFUSED",
168+
"ticket": 158401
169+
},
170+
{
171+
"error_text": "Unable to make request: ECONNRESET",
172+
"ticket": 158401
173+
},
174+
{
175+
"error_text": "Failed to FinalizeArtifact: Failed to make request after 5 attempts: Unexpected token",
176+
"ticket": 181539
177+
},
178+
{
179+
"error_text": "getaddrinfo EAI_AGAIN",
180+
"ticket": 182238
181+
},
182+
{
183+
"error_text": "getaddrinfo failed",
184+
"ticket": 182238
185+
},
186+
{
187+
"error_text": "Temporary failure in name resolution",
188+
"ticket": 182238
189+
},
190+
{
191+
"error_text": "unable to resolve host",
192+
"ticket": 182238
165193
}
166194
]

.github/workflows/android.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
3636
steps:
3737
- name: checkout action
38-
uses: ababushk/checkout@9bec46a94a83db82acd4303e7627d88db71402a5 # cherry_pick_retries
38+
uses: ababushk/checkout@dd591a6a2ac25618db4eda86e7e0d938f88cf01b # cherry_pick_retries
3939
timeout-minutes: 15
4040
with:
4141
sparse-checkout: .github/actions/smart-ci
@@ -70,7 +70,7 @@ jobs:
7070

7171
- name: Checkout
7272
if: ${{ needs.smart_ci.outputs.skip_workflow != 'True' }}
73-
uses: ababushk/checkout@9bec46a94a83db82acd4303e7627d88db71402a5 # cherry_pick_retries
73+
uses: ababushk/checkout@dd591a6a2ac25618db4eda86e7e0d938f88cf01b # cherry_pick_retries
7474
timeout-minutes: 15
7575

7676
- uses: ./.github/actions/handle_docker
@@ -148,14 +148,14 @@ jobs:
148148
echo "✓ Connection string loaded and masked"
149149
150150
- name: Clone OpenVINO
151-
uses: ababushk/checkout@9bec46a94a83db82acd4303e7627d88db71402a5 # cherry_pick_retries
151+
uses: ababushk/checkout@dd591a6a2ac25618db4eda86e7e0d938f88cf01b # cherry_pick_retries
152152
timeout-minutes: 15
153153
with:
154154
path: 'openvino'
155155
submodules: 'recursive'
156156

157157
- name: Clone OpenVINO GenAI
158-
uses: ababushk/checkout@9bec46a94a83db82acd4303e7627d88db71402a5 # cherry_pick_retries
158+
uses: ababushk/checkout@dd591a6a2ac25618db4eda86e7e0d938f88cf01b # cherry_pick_retries
159159
timeout-minutes: 15
160160
with:
161161
repository: 'openvinotoolkit/openvino.genai'
@@ -190,7 +190,7 @@ jobs:
190190
run: ${SCCACHE_PATH} --zero-stats
191191

192192
- name: Clone OneTBB
193-
uses: ababushk/checkout@9bec46a94a83db82acd4303e7627d88db71402a5 # cherry_pick_retries
193+
uses: ababushk/checkout@dd591a6a2ac25618db4eda86e7e0d938f88cf01b # cherry_pick_retries
194194
timeout-minutes: 15
195195
with:
196196
repository: 'oneapi-src/oneTBB'
@@ -349,7 +349,7 @@ jobs:
349349
INSTALL_TEST_DIR: android_tests
350350
steps:
351351
- name: Checkout
352-
uses: ababushk/checkout@9bec46a94a83db82acd4303e7627d88db71402a5 # cherry_pick_retries
352+
uses: ababushk/checkout@dd591a6a2ac25618db4eda86e7e0d938f88cf01b # cherry_pick_retries
353353
timeout-minutes: 15
354354

355355
- name: Download CPU test binaries
@@ -443,7 +443,7 @@ jobs:
443443
GTEST_FILTER: '*EltwiseLayer*'
444444
steps:
445445
- name: Checkout
446-
uses: ababushk/checkout@9bec46a94a83db82acd4303e7627d88db71402a5 # cherry_pick_retries
446+
uses: ababushk/checkout@dd591a6a2ac25618db4eda86e7e0d938f88cf01b # cherry_pick_retries
447447
timeout-minutes: 15
448448

449449
- name: Download CPU test binaries

0 commit comments

Comments
 (0)