Releases
Release notes for aerospike-py. See all releases on GitHub.
v0.10.11
Released: 2026-05-23
What's Changed
Bug Fixes
- list/map BY_VALUE 연산 val 필수화: list/map BY_VALUE 연산에서
val미지정 시 자동으로 Nil이 대입되는 문제를 방지하기 위해val파라미터를 필수로 변경 (#373) - HLL/map_put_items val 필수화: HLL 및
map_put_items연산에서val미지정 시 자동으로 Nil이 대입되는 문제를 방지하기 위해val파라미터를 필수로 변경 (#372) - bit 연산 val 필수화: bit 연산에서
val미지정 시 자동으로 Nil이 대입되는 문제를 방지하기 위해val파라미터를 필수로 변경 (#371) - list_trim count 필수화:
list_trim연산에서count미지정 시 리스트가 자동으로 잘리는 문제를 방지하기 위해count파라미터를 필수로 변경 (#370) - connect() 취소 교착 및 에러 매핑 개선:
connect()취소 시 발생하는 교착 상태(wedge) 수정,result_code테이블 완성, batch 에러 매핑 개선 (#369)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.10.10...v0.10.11
v0.10.10
Released: 2026-05-22
What's Changed
Bug Fixes
- increment offset validation:
increment()에 숫자가 아닌 offset(문자열, 리스트, bool 등)을 전달하면 서버로 전송되기 전에TypeError를 발생시키도록 수정 (#368) - server-timeout error mapping: 서버 측
ResultCode::Timeout(코드 9)과ResultCode::QueryTimeout(코드 212)이ServerError대신AerospikeTimeoutError로 정확히 매핑되도록 수정 (#368) - bit_resize flag guard:
BitwiseResizeFlags에 OR 조합된 플래그(예:GROW_ONLY | FROM_FRONT)가 조용히Default로 무시되던 문제를ValueError로 거부하도록 수정 (#368) - map index/rank range ops:
count를 생략한map_get_by_index_range,map_get_by_rank_range등이 전체 범위 대신 1개만 반환하던 버그 수정 — open-ended*_range_fromvariant 사용 (#367) - explicit key digest validation: 4-element key tuple의 digest가 20바이트가 아닐 때 조용히 무시하고 digest를 재계산하던 문제를
ValueError로 거부하도록 수정 (#366) - BatchRecord.record mutex poisoning: poisoned mutex에서 조용히 복구하던
BatchRecord.recordgetter가 이제RustPanicError를 발생시켜 데이터 손상 가능성을 명확히 알림 (#365) - sleep_between_retries 정책 누락:
WritePolicy,BatchPolicy,QueryPolicy에서sleep_between_retries필드가 파싱되지 않아 재시도 간 대기 없이 즉시 재시도하던 문제 수정 (#364) - list_increment 타입 검증: 정수가 아닌
val(float, string 등)이 조용히 +1로 변환되던 문제를ValueError로 거부하도록 수정 (#363) - batch keys() 오류 전파:
BatchReadHandle.keys()에서 key 변환 실패가 조용히 무시되어 반환 리스트 길이가 배치와 불일치하던 문제 수정 (#363) - uint64 정수 지원: 공식 C 클라이언트가 기록한
[2^63, 2^64-1]범위의 큰 부호 없는 정수가OverflowError를 발생시키던 문제 수정 (#363) - numpy sub-array 데이터 손실: structured-dtype sub-array 필드(예:
('vec','(4,)f8'))가 batch read 시base_itemsize만큼만 읽혀 나머지 바이트가 손실되던 문제 수정 (#362)
CI/CD
cargo test를 CI lint job에 추가하고test-rustMakefile target 신설 (#362)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.10.9...v0.10.10
v0.10.9
Released: 2026-05-21
What's Changed
Bug Fixes
- maintenance docs alignment: Improve consistency and accuracy of public maintenance docs (#361)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.10.8...v0.10.9
v0.10.8
Released: 2026-05-20
What's Changed
Bug Fixes
- bug_report UTF-8 handling: Truncate at character boundaries when generating GitHub issue titles so multi-byte UTF-8 text no longer triggers a panic (#360)
- query OTel span timing: Start the OTel span before the operation so query latency is reflected accurately (previously the span was created after completion and duration was ~0) (#360)
- query OTel span panic path: Ensure the OTel span is properly closed even on the catch_panic path (#360)
- client_policy auth_mode validation: Reject unknown
auth_modevalues instead of silently falling back, and addAUTH_PKI (2) → AuthMode::PKImapping (#360) - partition_filter range validation: Reject
begin >= 4096even whencount == 0, matching the documented[0, 4096)contract (#360) - runtime consistency: Unify the async Tokio runtime to use
enable_io() + enable_time(), matching the syncRUNTIMEconfiguration (#360) - type stub bit_operations missing: Re-export the
bit_operationssubmodule in__init__.pyi(present at runtime but missing from the type stub) (#360) - docs constants value errors: Correct
POLICY_EXISTS_*constant values in the docs to match the actual code (#360)
Docs
- performance docs readability: Use Tabs components and ASCII bar charts to significantly improve readability of the benchmarks, free-threaded-python, bottleneck-analysis, and overview pages (#359)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.10.7...v0.10.8
v0.10.7
Released: 2026-05-17
What's Changed
Bug Fixes
- batch_to_dict_py: Drop errored records from the batch result dict and tighten the retry merge logic so only accurate results are returned (#358)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.10.6...v0.10.7
v0.10.6
Released: 2026-05-15
What's Changed
Bug Fixes
- panic-safety hardening: Update the panic-safe wrapper module docs to match actual coverage, and add C-contiguous layout validation for NumPy arrays plus a compile-time layout guard for
BatchRecordMirror(#357)
CI/CD
- Change the daily release schedule from UTC 00:00 to UTC 22:00 (KST 07:00) (#356)
- Fix
docs: freeze versioncommits cascading into empty releases (#343) - Switch release-target change detection from commit-message matching to a path-based allowlist (
rust/,src/,pyproject.toml, etc.) to avoid unnecessary releases for CI/docs-only commits (#344)
Documentation
- Add a Throughput (TPS) section to the Free-Threaded Python performance docs — includes k6 iterations/s and server-side Prometheus metric comparisons (#346)
- Overhaul the performance docs based on benchmark results — restructured into four pages: overview, benchmarks, free-threaded-python, bottleneck-analysis (EN + KO) (#345)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.10.5...v0.10.6
v0.10.5
Released: 2026-05-08
What's Changed
Documentation
- Freeze v0.10.4 documentation (docs freeze)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.10.4...v0.10.5
v0.10.4
Released: 2026-05-07
What's Changed
Documentation
- version freeze: Freeze v0.10.3 documentation
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.10.3...v0.10.4
v0.10.3
Released: 2026-05-06
What's Changed
CI/CD
- daily-release auto-bump: The daily-release workflow now only auto-bumps minor/patch versions. Major version bumps must be tagged manually by a maintainer.
feat!:/BREAKING CHANGEmarkers still appear in release notes but no longer trigger an automatic major bump. (#342)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.10.2...v0.10.3
v0.10.2
Released: 2026-05-06
What's Changed
Documentation
- v0.10.1 docs snapshot: Freeze v0.10.1 docs in Docusaurus
versioned_docsto add a per-version documentation archive
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.10.1...v0.10.2
v0.10.1
Released: 2026-05-05
What's Changed
Documentation
- v0.10.0 docs snapshot: Freeze the v0.10.0 API docs and guides for Docusaurus versioning
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.10.0...v0.10.1
v0.10.0
Released: 2026-05-04
What's Changed
Features
- REGEX_ flag constants*: Expose and document
REGEX_*flag constants usable with PK regex scans in expression filters (#338)
Improvements
- PK regex scan tests and docs: Add edge-case tests for PK regex scan and expand docs around the
flags=0default (#340) - README Repository Automation section: Add a Repository Automation section to the README describing the automation workflows (#337)
CI/CD
- Improve the workflow to idempotently create the tracking label before opening an issue when the label does not yet exist (#341)
Dependencies
- Bump
actions/upload-pages-artifact(gha-deps group) (#330)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.9.2...v0.10.0
v0.9.2
Released: 2026-05-04
What's Changed
Documentation
- version freeze: Freeze v0.9.1 documentation
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.9.1...v0.9.2
v0.9.1
Released: 2026-05-03
What's Changed
Documentation
- version freeze: Freeze v0.9.0 documentation
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.9.0...v0.9.1
v0.9.0
Released: 2026-05-02
What's Changed
Features
- batch_apply(): Add a
batch_apply()method andBatchUDFPolicyfor running UDFs in batch (#334) - ScanPolicy: Add a
ScanPolicyTypedDict for Python type definitions (#333) - BatchPolicy.concurrency: Expose the
concurrencyoption (Sequential/Parallel) onBatchPolicy(#331) - BasePolicy.timeout_delay: Expose the
timeout_delayfield across read/write/batch/query policies (#332)
Docs
- Reflect the follow-up policy fields and
batch_applyin the docs (#336)
CI/CD
- Add a workflow that automatically creates follow-up issues at PR time for ACE plugins (#335)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.8.0...v0.9.0
v0.8.0
Released: 2026-05-01
What's Changed
Features
- admin privilege string support:
grant_privileges/revoke_privilegesnow accept standard string privilege names like"read"and"write"in addition to integer codes (#327) - BatchReadPolicy / BatchDeletePolicy split: Split the previous single
BatchPolicyintoBatchReadPolicyandBatchDeletePolicy, enabling finer-grained policy configuration per batch operation (#314) - QueryPolicy field expansion: Add
expected_duration,replica,include_bin_data, andpartition_filterfields toQueryPolicy(#313) - ReadPolicy read-path field expansion: Add
replica,read_mode_ap, andread_touch_ttl_percentfields to the read-path policy (#312)
Improvements
- Type stub hardening: Significantly expand
.pyistubs for policy constants and numpy batch APIs to improve IDE autocomplete and type-checker accuracy (#324) - Remove legacy expressions alias: Clean up the unused legacy
expressionsalias on policyTypedDicts (#311)
Documentation
- API reference policy fields: Reflect the new policy fields in the API docs (#321)
- SECURITY.md and performance tuning guide: Add a security policy doc, a concurrency performance tuning guide, and a NumPy usage example to the README (#325)
- QueryPolicy default fixes: Fix incorrect
QueryPolicydefaults and restore the sync/async tabs forbatch_remove(#322) - Repository URL normalization: Replace fork URLs with canonical org URLs across the repo (#328)
CI/CD
- Apply
cargo fmt+clippychecks automatically in pre-commit and CI (#323) - Add a performance hot-path review gate at PR creation time (#329)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.7.1...v0.8.0
v0.7.1
Released: 2026-04-30
What's Changed
Improvements
- batch_write API docs: Reflect
batch_writepolicy fields (key,exists,gen,commit_level,durable_delete,ttl, etc.) in the API reference, and add a write-field precedence table along with usage examples (#310)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.7.0...v0.7.1
v0.7.0
Released: 2026-04-29
What's Changed
Features
- Full batch_write policy field exposure:
batch_write()now supports every write field ofaerospike-core 2.0'sBatchWritePolicyat both the batch level and per-record (WriteMeta) level. Addskey(send_key),exists,gen,commit_level,durable_delete, andfilter_expression, while preserving the existingttl/genprecedence where per-record meta overrides batch-level policy. Resolves issue #303. (#304)
Improvements
- Extract POLICY enum mapping helpers: Extract
parse_record_exists_action/parse_generation_policy/parse_commit_levelintorust/src/policy/mod.rssowrite_policy.rsandbatch_policy.rsshare the same mapping logic. (#304) - BatchPolicy TypedDict accuracy: Declare
allow_inline,allow_inline_ssd, andrespond_all_keysfields in the stub — Rust was already parsing them but they were missing from the stub. (#304)
Behavior change (non-breaking)
- Previously
batch_write(records, policy={"gen": N})was silently ignored; starting with this release thegenkey is interpreted as aPOLICY_GEN_*enum index. Since the prior behavior was a no-op there is no compatibility impact, but any pattern that placedgenerationdirectly at the batch level should move to per-recordWriteMeta.
Follow-up backlog
Additional missing fields on ReadPolicy / QueryPolicy / BasePolicy surfaced during this analysis are tracked separately:
- #305 ReadPolicy:
replica,read_mode_ap,read_mode_sc - #306 QueryPolicy:
expected_duration,replica,partition_filter, etc. - #307 Split BatchReadPolicy / BatchApplyPolicy / BatchRemovePolicy
- #308 Clean up legacy
expressionsalias - #309 BasePolicy.consistency_level / read_touch_ttl
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.6.7...v0.7.0
v0.6.7
Released: 2026-04-29
What's Changed
Docs
- Version docs snapshot: Freeze v0.6.6 docs into Docusaurus
versioned_docs
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.6.6...v0.6.7
v0.6.6
Released: 2026-04-28
What's Changed
Documentation
- version freeze: Freeze v0.6.5 documentation
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.6.5...v0.6.6
v0.6.5
Released: 2026-04-26
What's Changed
Documentation
- v0.6.4 docs snapshot: Freeze v0.6.4 docs in Docusaurus
versioned_docsto support browsing previous versions
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.6.4...v0.6.5
v0.6.4
Released: 2026-04-25
What's Changed
Bug Fixes
- RustPanicError: Fix panics inside
aerospike-core(e.g.,unreachable!()on legacyPYTHON_BLOB/JAVA_BLOBparticle types) terminating the Python process with SIGABRT. Switched topanic = "unwind"and applied panic-catching at every Client/AsyncClient data-path entry point so panics are safely converted toRustPanicError(aClientErrorsubclass). (#280) (#301)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.6.3...v0.6.4
v0.6.3
Released: 2026-04-25
What's Changed
Bug Fixes
- docs site config: Update the release fetcher and site config repository paths to the new repo path (#300)
Improvements
- README badges: Refresh README badge links to the latest state (#299)
- benchmark docs: Remove internal references from benchmark results to tidy up the public docs (#298)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.6.2...v0.6.3
v0.6.2
Released: 2026-04-24
What's Changed
Documentation
- Create v0.6.1 docs snapshot (Docusaurus versioned_docs archive)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.6.1...v0.6.2
v0.6.1
Released: 2026-04-23
What's Changed
Documentation
- Create v0.6.0 docs snapshot (Docusaurus versioned_docs archive)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.6.0...v0.6.1
v0.6.0
Released: 2026-04-22
What's Changed
Features
- Internal Stage Profiling: Add an internal per-stage profiling toggle — zero runtime cost when disabled (#291)
Bug Fixes
- AsyncClient.close unification: Consolidate
AsyncClient.close()and__aexit__into a shared helper so async shutdown behaves consistently (#295)
Improvements
- BatchWritePolicy sharing optimization: Share
BatchWritePolicyacrossbatch_writerecords viaArcto avoid unnecessary clones (#296)
Documentation
- Fix CHANGELOG and async troubleshooting code snippets (#297)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.5.13...v0.6.0
v0.5.13
Released: 2026-04-21
What's Changed
Documentation
- Create v0.5.12 docs snapshot
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.5.12...v0.5.13
v0.5.12
Released: 2026-04-20
What's Changed
Documentation
- Create v0.5.11 docs snapshot
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.5.11...v0.5.12
v0.5.11
Released: 2026-04-19
What's Changed
Documentation
- version freeze: Freeze v0.5.10 documentation
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.5.10...v0.5.11
v0.5.10
Released: 2026-04-18
What's Changed
Dependencies
- ripemd 0.2 / rand 0.10: Update Rust dependencies and adapt to breaking API changes (
Rng→RngExt,thread_rng()→rng(),gen_range()→random_range()) (#266)
Full Changelog: https://github.com/aerospike-ce-ecosystem/aerospike-py/compare/v0.5.9...v0.5.10