Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
61b6709
Bump sphinxcontrib-spelling from 8.0.0 to 8.0.2 in /doc (#942)
dependabot[bot] Feb 18, 2026
059a9bc
Auto-bump version to 19.1.0rc1.dev10 [skip ci]
github-actions[bot] Feb 18, 2026
4cd3afc
[CLIENT-4225] CI/CD: Remove unused delocate package from .github/work…
juliannguyen4 Feb 19, 2026
73d7d08
Auto-bump version to 19.1.0rc1.dev11 [skip ci]
github-actions[bot] Feb 19, 2026
afad468
Bump actions/setup-python from 6.1.0 to 6.2.0 (#957)
dependabot[bot] Feb 19, 2026
f3da303
Auto-bump version to 19.1.0rc1.dev12 [skip ci]
github-actions[bot] Feb 19, 2026
21df731
Bump versioningit from 3.1.0 to 3.3.0 (#937)
dependabot[bot] Feb 19, 2026
cde0b2b
Auto-bump version to 19.1.0rc1.dev13 [skip ci]
github-actions[bot] Feb 19, 2026
036fdbf
Run test with procdump on self hosted runner
juliannguyen4 Feb 19, 2026
1fb4675
Bump docker/build-push-action from 6.18.0 to 6.19.2 (#966)
dependabot[bot] Feb 19, 2026
666f1f1
Auto-bump version to 19.1.0rc1.dev14 [skip ci]
github-actions[bot] Feb 19, 2026
8f7f9ff
fix
juliannguyen4 Feb 19, 2026
f946089
fix...
juliannguyen4 Feb 19, 2026
296303c
fix
juliannguyen4 Feb 19, 2026
12a54b5
Compile Python client with debug configuration
juliannguyen4 Feb 19, 2026
16c4726
A different static library is used for pthreadVC2 with debug config
juliannguyen4 Feb 19, 2026
01419ab
fix
juliannguyen4 Feb 19, 2026
7c83b9c
Include symbols with repaired wheel
juliannguyen4 Feb 19, 2026
15c4acb
pdb files do not get mangled in wheel along with the mangled DLL files.
juliannguyen4 Feb 20, 2026
59b9194
[CLIENT-4224] CI/CD: Switch from using lint.yml to pre-commit.ci to r…
juliannguyen4 Feb 20, 2026
9554604
Auto-bump version to 19.1.0rc1.dev15 [skip ci]
github-actions[bot] Feb 20, 2026
b3a3aa4
Bump mypy from 1.17.1 to 1.19.1 in /.github/workflows (#968)
dependabot[bot] Feb 20, 2026
2d0bff6
Auto-bump version to 19.1.0rc1.dev16 [skip ci]
github-actions[bot] Feb 20, 2026
ddd3328
Allow compiling Python client C code with debug information bundled w…
juliannguyen4 Feb 20, 2026
c0505e8
upload .dmp file to github as an artifact. it can be analyzed anywhere
juliannguyen4 Feb 20, 2026
dc98f26
fix...
juliannguyen4 Feb 20, 2026
d1ebbde
not sure what error code is returned from procdump
juliannguyen4 Feb 20, 2026
2906e5b
Merge remote-tracking branch 'origin/dev' into CLIENT-4237-debug-wind…
juliannguyen4 Feb 20, 2026
eebff91
prevent jobs overriding each other's dump files
juliannguyen4 Feb 20, 2026
a861985
Run with debug logging
juliannguyen4 Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 21 additions & 3 deletions .github/workflows/build-wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -328,14 +328,15 @@ jobs:
auditwheel repair -w {dest_dir} {wheel} &&
auditwheel show {dest_dir}/* &&
rm -rf $WHEEL_DIR
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair -vv --add-path ./aerospike-client-c/vs/x64/Release -w {dest_dir} {wheel}"
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair -vv --add-path ./aerospike-client-c/vs/x64/Debug --no-mangle-all --include-symbols -w {dest_dir} {wheel}"
# We also want to verify the same thing on macos
CIBW_REPAIR_WHEEL_COMMAND_MACOS: >
delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel} &&
delocate-listdeps {dest_dir}/*.whl | grep libcrypto.3.dylib &&
delocate-listdeps {dest_dir}/*.whl | grep libssl.3.dylib
CIBW_TEST_COMMAND: ${{ env.TEST_COMMAND }}
CIBW_DEBUG_KEEP_CONTAINER: 1
VS_PROJECT_CONFIGURATION: debug

# - name: Setup tmate session
# if: ${{ !cancelled() }}
Expand Down Expand Up @@ -424,7 +425,7 @@ jobs:
echo PYTHON_VERSION="${PYTHON_VERSION/3/3.}" >> $GITHUB_ENV
shell: bash

- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ env.PYTHON_VERSION }}
allow-prereleases: true
Expand All @@ -437,10 +438,27 @@ jobs:
working-directory: test
shell: bash

- run: python3 -m pytest -vvs --full-trace new_tests/${{ inputs.test-file }}
- if: ${{ inputs.platform-tag == 'win_amd64' }}
id: run-tests
run: |
curl -O https://download.sysinternals.com/files/Procdump.zip
unzip Procdump.zip
mkdir dumps
./procdump.exe -accepteula -e -x ./dumps python3 -m pytest -vvs --full-trace new_tests/${{ inputs.test-file }}
working-directory: test
shell: bash

- if: ${{ failure() && steps.run-tests.outcome == 'failure' }}
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
path: ./test/dumps/*
name: dump-${{ matrix.python-tag }}
if-no-files-found: error

# - run: python3 -m pytest -vvs --full-trace new_tests/${{ inputs.test-file }}
# working-directory: test
# shell: bash

- name: Show job status for commit
if: ${{ always() && github.event_name != 'push' && github.event_name != 'pull_request' }}
uses: myrotvorets/set-commit-status-action@3730c0a348a2ace3c110851bed53331bc6406e9f # v2.0.1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/doc-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
submodules: recursive
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: 3.12
architecture: 'x64'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
submodules: recursive
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ env.LOWEST_SUPPORTED_PY_VERSION }}
architecture: 'x64'
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
parver==0.5
crudini==0.9.4
delocate==0.10.4
mypy==1.17.1
mypy==1.19.1
18 changes: 9 additions & 9 deletions .github/workflows/smoke-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ jobs:
submodules: recursive
fetch-depth: 0

- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.py-version }}
architecture: 'x64'
Expand Down Expand Up @@ -108,7 +108,7 @@ jobs:
submodules: recursive
fetch-depth: 0

- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ env.LOWEST_SUPPORTED_PY_VERSION }}
architecture: 'x64'
Expand Down Expand Up @@ -227,7 +227,7 @@ jobs:
with:
submodules: recursive

- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ env.LOWEST_SUPPORTED_PY_VERSION }}
architecture: 'x64'
Expand All @@ -242,7 +242,7 @@ jobs:
- run: pip install mypy -c requirements.txt
working-directory: .github/workflows

- run: stubtest aerospike --allowlist stubtest-allowlist
- run: stubtest aerospike --allowlist stubtest-allowlist --ignore-disjoint-bases

test-full-suite:
strategy:
Expand All @@ -264,7 +264,7 @@ jobs:
with:
submodules: recursive

- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ env.LOWEST_SUPPORTED_PY_VERSION }}
architecture: 'x64'
Expand Down Expand Up @@ -333,7 +333,7 @@ jobs:
with:
submodules: recursive

- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.py-version }}
architecture: 'x64'
Expand Down Expand Up @@ -385,7 +385,7 @@ jobs:
with:
submodules: recursive

- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.13"
architecture: 'x64'
Expand Down Expand Up @@ -435,7 +435,7 @@ jobs:
egress-policy: audit

- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ env.LOWEST_SUPPORTED_PY_VERSION }}
architecture: 'x64'
Expand Down Expand Up @@ -466,7 +466,7 @@ jobs:
egress-policy: audit

- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ env.LOWEST_SUPPORTED_PY_VERSION }}
architecture: 'x64'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/stage-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ jobs:
JFROG_ACCESS_TOKEN: ${{ secrets.JFROG_ACCESS_TOKEN }}
JFROG_REPO_NAME: ${{ vars.JFROG_REPO_NAME }}

- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-server-rc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ jobs:
name: ${{ matrix.python[1] }}-macosx_x86_64.build
path: ./

- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python[0] }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/update-manylinux-openssl-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ jobs:
working-directory: cibuildwheel

- name: Build and push
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2
with:
# Don't want to use default Git context or else it will clone the whole Python client repo again
context: ${{ github.workspace }}/aerospike-client-python/.github/workflows
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/valgrind.yml
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ jobs:
run: echo PYTHON_VERSION=$(echo ${{ env.PYTHON_TAG }} | sed -e "s/cp3/cp3./" -e "s/cp//") >> $GITHUB_ENV
shell: bash

- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '${{ env.PYTHON_VERSION }}'
architecture: 'x64'
Expand Down
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ repos:
- id: doc8
args: ["doc/", "--extension", ".rst"]
pass_filenames: false
- repo: https://github.com/koalaman/shellcheck-precommit
rev: v0.11.0
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.11.0.1
hooks:
- id: shellcheck
# Running on all files causes this issue:
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
19.1.0rc1.dev9
19.1.0rc1.dev16
6 changes: 3 additions & 3 deletions aerospike-stubs/aerospike.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -327,11 +327,11 @@ EXP_LOOPVAR_INDEX: Literal[2]

@final
class CDTInfinite:
def __init__(self, *args, **kwargs) -> None: ...
def __init__(self) -> None: ...

@final
class CDTWildcard:
def __init__(self, *args, **kwargs) -> None: ...
def __init__(self) -> None: ...

@final
class Transaction:
Expand Down Expand Up @@ -482,7 +482,7 @@ class Scan:

@final
class null:
def __init__(self, *args, **kwargs) -> None: ...
def __init__(self) -> None: ...

def calc_digest(ns: str, set: str, key: Union[str, int, bytearray]) -> bytearray: ...
def client(config: dict) -> Client: ...
Expand Down
2 changes: 1 addition & 1 deletion doc/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# sphinx version requirement for readthedocs.
sphinx==9.1.0
sphinx-rtd-theme==3.1.0
sphinxcontrib-spelling==8.0.0
sphinxcontrib-spelling==8.0.2
certifi>=2023.7.22 # not directly required, pinned by Snyk to avoid a vulnerability
jinja2>=3.1.3 # not directly required, pinned by Snyk to avoid a vulnerability
pygments>=2.15.0 # not directly required, pinned by Snyk to avoid a vulnerability
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[build-system]
requires = [
"setuptools",
"versioningit==3.1.0",
"versioningit==3.3.0",
# Used by our versioningit script that modifies the version
"parver==0.5"
]
Expand Down
24 changes: 18 additions & 6 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
BASEPATH = os.path.dirname(os.path.abspath(__file__))
AEROSPIKE_C_HOME = os.path.join(BASEPATH, 'aerospike-client-c')

VS_PROJECT_CONFIGURATION = os.getenv("VS_PROJECT_CONFIGURATION", "Release")
AEROSPIKE_C_TARGET = None
PLATFORM = platform.platform(1)
LINUX = 'Linux' in PLATFORM
Expand Down Expand Up @@ -119,8 +120,15 @@
extra_compile_args.append('-ftest-coverage')
extra_link_args.append('-lgcov')

data_files = []

if UNOPTIMIZED:
extra_compile_args.append('-O0')
if WINDOWS:
extra_compile_args.append('/Zi')
extra_link_args.append('/DEBUG')
data_files.append("*.pdb")
else:
extra_compile_args.append('-O0')

################################################################################
# STATIC SSL LINKING BUILD SETTINGS
Expand Down Expand Up @@ -166,7 +174,10 @@
libraries = libraries + ['rt']
AEROSPIKE_C_TARGET = AEROSPIKE_C_HOME + '/target/Linux-' + machine
elif WINDOWS:
libraries.append("pthreadVC2")
if VS_PROJECT_CONFIGURATION == "Release":
libraries.append("pthreadVC2")
else:
libraries.append("pthreadVC2d")
extra_compile_args.append("-DAS_SHARED_IMPORT")
include_dirs.append(f"{AEROSPIKE_C_TARGET}/vs/packages/aerospike-client-c-dependencies.{c_client_dependencies_version}/build/native/include")
else:
Expand All @@ -184,9 +195,9 @@
]
else:
include_dirs.append(AEROSPIKE_C_TARGET + '/src/include')
library_dirs.append(f"{AEROSPIKE_C_TARGET}/vs/packages/aerospike-client-c-dependencies.{c_client_dependencies_version}/build/native/lib/x64/Release")
library_dirs.append(f"{AEROSPIKE_C_TARGET}/vs/packages/aerospike-client-c-dependencies.{c_client_dependencies_version}/build/native/lib/x64/{VS_PROJECT_CONFIGURATION}")
# Needed for linking the Python client with the C client
extra_objects.append(AEROSPIKE_C_TARGET + "/vs/x64/Release/aerospike.lib")
extra_objects.append(AEROSPIKE_C_TARGET + f"/vs/x64/{VS_PROJECT_CONFIGURATION}/aerospike.lib")

os.putenv('CPATH', ':'.join(include_dirs))
os.environ['CPATH'] = ':'.join(include_dirs)
Expand Down Expand Up @@ -230,7 +241,7 @@ def clean():
cmd = [
'msbuild',
'vs/aerospike.sln',
'/property:Configuration=Release'
f"/property:Configuration={VS_PROJECT_CONFIGURATION}"
]
else:
cmd = [
Expand Down Expand Up @@ -324,5 +335,6 @@ def clean():
cmdclass={
'build': CClientBuild,
'clean': CClientClean
}
},
data_files=data_files
)
2 changes: 1 addition & 1 deletion test/new_tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ def invalid_key(request):
yield request.param


# aerospike.set_log_level(aerospike.LOG_LEVEL_DEBUG)
aerospike.set_log_level(aerospike.LOG_LEVEL_DEBUG)
# aerospike.set_log_handler(None)

def verify_record_ttl(client: aerospike.Client, key, expected_ttl: int):
Expand Down
2 changes: 1 addition & 1 deletion test/new_tests/test_dynamic_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def show_more_logs(self):

# TODO: currently there is no way to restore the log handler and level before running this test
# These are the defaults in the implementation
aerospike.set_log_level(aerospike.LOG_LEVEL_ERROR)
# aerospike.set_log_level(aerospike.LOG_LEVEL_ERROR)

@pytest.fixture
def cleanup_metrics_logs(self):
Expand Down
2 changes: 1 addition & 1 deletion test/new_tests/test_log.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def teardown_class(cls):
"""
Set the class level logger to a no-op to ensure no problems later
"""
aerospike.set_log_level(aerospike.LOG_LEVEL_ERROR)
aerospike.set_log_level(aerospike.LOG_LEVEL_DEBUG)
aerospike.set_log_handler(None)

def test_set_log_level_with_correct_argument(self):
Expand Down
Loading