Skip to content

Commit 2cebed1

Browse files
bashandboneclaudeCopilotCopilot
authored
Fix: Incorrect property access causing indexing failures (#200)
* Fixes a critical error where DiscoveredFile.file_hash was incorrectly called as a method, when it is a property. This stemmed from the use of `computed_field` without a property decorator, which the type checker interpreted as a method. Added property decorator to clarify property status. * Added rich markup escapes for error messages referencing codeweaver optional packages. * Minor type improvements in connection pooling modules. --------- Signed-off-by: Adam Poulemanos <[email protected]> Co-authored-by: Claude <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: copilot-swe-agent[bot] <[email protected]>
1 parent 0315a68 commit 2cebed1

Some content is hidden

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

59 files changed

+315
-683
lines changed

.github/actionlint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
paths:
77
.github/actions/setup-uv-env/action.yml:
88
ignore:
9-
- '.*is not defined in object type.*'
9+
- .*is not defined in object type.*

.github/actions/setup-mise-env/action.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,23 @@
55

66
name: Setup Mise Environment
77
description: Complete Python development environment setup with mise and UV caching
8-
98
inputs:
109
python-version:
1110
description: Python version to install
1211
required: false
13-
default: '3.12'
12+
default: "3.12"
1413
fetch-depth:
1514
description: Git fetch depth for checkout
1615
required: false
17-
default: '1'
16+
default: "1"
1817
skip-checkout:
1918
description: Skip checkout step (if already checked out by calling workflow)
2019
required: false
21-
default: 'false'
20+
default: "false"
2221
github-token:
2322
description: GitHub token for mise installation (to avoid rate limits)
2423
required: false
25-
default: ''
24+
default: ""
2625
profile:
2726
description: Task profile to use for mise setup one of 'minimal', 'reviewer', 'dev'
2827
required: true

.github/actions/setup-python-env/action.yml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,19 @@
55

66
name: Setup Python Environment
77
description: Minimal Python environment setup
8-
98
inputs:
109
python-version:
1110
description: Python version to install
1211
required: false
13-
default: '3.12'
12+
default: "3.12"
1413
fetch-depth:
1514
description: Git fetch depth for checkout
1615
required: false
17-
default: '0'
16+
default: "0"
1817
skip-checkout:
1918
description: Skip checkout step (if already checked out by calling workflow)
2019
required: false
21-
default: 'false'
20+
default: "false"
2221
github-token:
2322
description: GitHub token for mise installation (to avoid rate limits)
2423
required: false
@@ -40,11 +39,9 @@ runs:
4039
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
4140
with:
4241
fetch-depth: ${{ inputs.fetch-depth }}
43-
4442
- name: Free up disk space
4543
shell: bash
4644
run: ./scripts/dev-env/ci-free-disk-space.sh
47-
4845
- name: Set up Python ${{ inputs.python-version }}
4946
uses: actions/setup-python@9b03c627221f32cb88b299427119da30671cf9cc # v5
5047
with:

.github/actions/setup-uv-env/action.yml

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,23 @@
55

66
name: Setup UV Environment
77
description: Minimal UV environment setup with caching
8-
98
inputs:
109
fetch-depth:
1110
description: Git fetch depth for checkout
1211
required: false
13-
default: '1'
12+
default: "1"
1413
skip-checkout:
1514
description: Skip checkout step (if already checked out by calling workflow)
1615
required: false
17-
default: 'false'
16+
default: "false"
1817
github-token:
1918
description: GitHub token for mise installation (to avoid rate limits)
2019
required: false
21-
default: ''
20+
default: ""
2221
python-version:
2322
description: Python version to install
2423
required: false
25-
default: '3.12'
24+
default: "3.12"
2625
activate-venv:
2726
description: Whether to activate the Python virtual environment
2827
required: false
@@ -44,19 +43,18 @@ runs:
4443
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
4544
with:
4645
fetch-depth: ${{ inputs.fetch-depth }}
47-
4846
- name: Setup UV and build
4947
uses: astral-sh/setup-uv@9c12baee9699f1b4f4318d7175fab8635c2b8e45
5048
with:
51-
resolution-strategy: "highest"
49+
resolution-strategy: highest
5250
python-version: ${{ inputs.python-version }}
5351
activate-environment: ${{ inputs.activate-venv }}
5452
github-token: ${{ inputs.github-token }}
5553
enable-cache: "true"
5654
cache-dependency-glob: |
5755
**/pyproject.toml
5856
**/uv.lock
59-
cache-suffix: "highest"
57+
cache-suffix: highest
6058
restore-cache: "true"
6159
save-cache: "true"
6260
prune-cache: "true"

.github/workflows/_reusable-build.yml

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,29 @@
44
# SPDX-License-Identifier: MIT OR Apache-2.0
55

66
name: Reusable Build Workflow
7-
87
on:
98
workflow_call:
109
inputs:
1110
artifact-name:
12-
description: "Name for the build artifacts"
11+
description: Name for the build artifacts
1312
required: false
1413
type: string
15-
default: "python-package-distributions"
14+
default: python-package-distributions
1615
python-version:
17-
description: "Python version for building"
16+
description: Python version for building
1817
required: false
1918
type: string
2019
default: "3.12"
2120
upload-artifacts:
22-
description: "Upload build artifacts"
21+
description: Upload build artifacts
2322
required: false
2423
type: boolean
2524
default: true
2625
clean-build:
27-
description: "Run clean build (uv build --clear)"
26+
description: Run clean build (uv build --clear)
2827
required: false
2928
type: boolean
3029
default: false
31-
3230
jobs:
3331
build:
3432
name: Build Package
@@ -62,21 +60,13 @@ jobs:
6260
else
6361
"$UV_PATH" build
6462
fi
65-
6663
- name: Check build artifacts
67-
run: |
68-
ls -la dist/
69-
echo "Built packages:"
70-
for file in dist/*; do
71-
echo "📦 $(basename "$file")"
72-
done
73-
64+
run: "ls -la dist/\necho \"Built packages:\"\nfor file in dist/*; do\n echo \"\U0001F4E6 $(basename \"$file\")\"\ndone\n"
7465
- name: Verify package integrity with twine
7566
env:
7667
UVX_PATH: ${{ steps.setup-uv.outputs.uvx-path }}
7768
run: |
7869
"$UVX_PATH" twine check dist/*
79-
8070
- name: Upload build artifacts
8171
if: inputs.upload-artifacts
8272
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02

.github/workflows/_reusable-lint.yml

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,16 @@
66
name: Reusable Lint Workflow
77
permissions:
88
contents: read
9-
109
on:
1110
workflow_call:
1211
inputs:
1312
python-version:
14-
description: "Python version for linting"
13+
description: Python version for linting
1514
required: false
1615
type: string
1716
default: "3.12"
1817
run-format-check:
19-
description: "Run format/license checks"
18+
description: Run format/license checks
2019
required: false
2120
type: boolean
2221
default: true
@@ -31,7 +30,6 @@ jobs:
3130
permissions:
3231
contents: read
3332
name: Lint and Format
34-
runs-on: ubuntu-latest
3533
env:
3634
MISE_PYTHON_VERSION: ${{ inputs.python-version }}
3735
UV_PYTHON: ${{ inputs.python-version }}
@@ -40,11 +38,10 @@ jobs:
4038
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
4139
with:
4240
fetch-depth: 1
43-
4441
- name: Setup Python environment
4542
uses: ./.github/actions/setup-mise-env
4643
with:
47-
python-version: ${{ inputs.python-version }}
44+
python-version: ${{ env.python-version }}
4845
github-token: ${{ secrets.GITHUB_TOKEN }}
4946
profile: "${{ env.PROFILE }}"
5047
skip-checkout: true
@@ -55,7 +52,6 @@ jobs:
5552
MISE_PYTHON_VERSION: ${{ steps.mise-setup.outputs.MISE_PYTHON_VERSION }}
5653
run: mise run lint || echo "::warning::Lint checks failed but allowing workflow to continue"
5754
continue-on-error: true
58-
5955
- name: Check formatting and licenses
6056
if: inputs.run-format-check
6157
env:

.github/workflows/_reusable-test.yml

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,26 @@
66
name: Reusable Test Workflow
77
permissions:
88
contents: read
9-
109
on:
1110
workflow_call:
1211
inputs:
1312
python-versions:
14-
description: 'JSON array of Python versions to test (e.g., ["3.12", "3.13"]). Experimental versions (3.13t, 3.14t) are always included via matrix.include.'
13+
description: JSON array of Python versions to test (e.g., ["3.12", "3.13"]). Experimental versions (3.13t, 3.14t) are always included via matrix.include.
1514
required: false
1615
type: string
1716
default: '["3.12", "3.13", "3.14"]'
1817
test-markers:
19-
description: "Pytest markers for test filtering"
18+
description: Pytest markers for test filtering
2019
required: false
2120
type: string
22-
default: "not docker and not qdrant and not dev_only and not skip_ci and not network and not external_api"
21+
default: not docker and not qdrant and not dev_only and not skip_ci and not network and not external_api
2322
upload-coverage:
24-
description: "Upload coverage to Codecov"
23+
description: Upload coverage to Codecov
2524
required: false
2625
type: boolean
2726
default: true
2827
run-quality-checks:
29-
description: "Run quality checks before tests"
28+
description: Run quality checks before tests
3029
required: false
3130
type: boolean
3231
default: true
@@ -61,12 +60,13 @@ jobs:
6160
fail-fast: false
6261
matrix:
6362
python-version: ${{ fromJSON(inputs.python-versions) }}
64-
experimental: [false]
63+
experimental:
64+
- false
6565
include:
6666
# Experimental free-threaded Python versions (no-GIL)
67-
- python-version: "3.13t"
67+
- python-version: 3.13t
6868
experimental: true
69-
- python-version: "3.14t"
69+
- python-version: 3.14t
7070
experimental: true
7171
env:
7272
MISE_PYTHON_VERSION: ${{ matrix.python-version }}
@@ -82,7 +82,7 @@ jobs:
8282
with:
8383
python-version: ${{ matrix.python-version }}
8484
github-token: ${{ secrets.GITHUB_TOKEN }}
85-
profile: "dev"
85+
profile: dev
8686
skip-checkout: true
8787
mise-debug: true
8888
id: setup-mise
@@ -107,7 +107,6 @@ jobs:
107107
files: ./coverage.xml
108108
fail_ci_if_error: false
109109
token: ${{ secrets.CODECOV_TOKEN }}
110-
111110
- name: Upload test results
112111
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
113112
if: always()

.github/workflows/changelog.yml

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,20 @@
44
# SPDX-License-Identifier: MIT OR Apache-2.0
55

66
name: Generate Changelog
7-
87
on:
98
workflow_dispatch:
109
inputs:
1110
tag:
12-
description: "Generate changelog for specific tag (e.g., v0.1.0). Leave empty for unreleased changes."
11+
description: Generate changelog for specific tag (e.g., v0.1.0). Leave empty for unreleased changes.
1312
required: false
1413
type: string
1514
commit:
16-
description: "Commit and push the generated CHANGELOG.md"
15+
description: Commit and push the generated CHANGELOG.md
1716
required: false
1817
type: boolean
1918
default: false
20-
2119
permissions:
2220
contents: write
23-
2421
jobs:
2522
generate-changelog:
2623
name: Generate Changelog
@@ -30,12 +27,10 @@ jobs:
3027
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
3128
with:
3229
fetch-depth: 0 # Fetch all history for changelog generation
33-
3430
- name: Install git-cliff
3531
uses: taiki-e/install-action@331a600f1b10a3fed8dc56f925012bede91ae51f
3632
with:
3733
38-
3934
- name: Generate changelog
4035
id: changelog
4136
run: |
@@ -49,12 +44,10 @@ jobs:
4944
echo "Generating changelog for unreleased changes"
5045
git-cliff --unreleased --prepend --output CHANGELOG.md
5146
fi
52-
5347
- name: Display changelog
5448
run: |
5549
echo "Generated CHANGELOG.md:"
5650
cat CHANGELOG.md
57-
5851
- name: Commit and push
5952
if: github.event.inputs.commit == 'true'
6053
run: |
@@ -71,7 +64,6 @@ jobs:
7164
fi
7265
git push
7366
fi
74-
7567
- name: Upload changelog artifact
7668
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
7769
with:

0 commit comments

Comments
 (0)