numpy-vector-store 0.7.0__tar.gz → 0.7.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- numpy_vector_store-0.7.1/.github/actionlint.yaml +4 -0
- numpy_vector_store-0.7.1/.github/workflows/checks.yml +233 -0
- numpy_vector_store-0.7.1/.github/workflows/publish-pypi.yml +43 -0
- numpy_vector_store-0.7.1/.github/workflows/publish-testpypi.yml +40 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/.gitignore +2 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/CHANGELOG.md +91 -1
- numpy_vector_store-0.7.1/PKG-INFO +284 -0
- numpy_vector_store-0.7.1/README.md +260 -0
- numpy_vector_store-0.7.1/RELEASING.md +108 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/ROADMAP.md +31 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/pyproject.toml +19 -5
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/src/numpy_vector_store/__init__.py +1 -1
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/src/numpy_vector_store/vector_store.py +10 -6
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/tests/test_vector_store.py +108 -0
- numpy_vector_store-0.7.1/tools/verify_installed_distribution.py +67 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/uv.lock +77 -40
- numpy_vector_store-0.7.0/.github/workflows/checks.yml +0 -140
- numpy_vector_store-0.7.0/.github/workflows/publish-pypi.yml +0 -45
- numpy_vector_store-0.7.0/.github/workflows/publish-testpypi.yml +0 -43
- numpy_vector_store-0.7.0/PKG-INFO +0 -540
- numpy_vector_store-0.7.0/README.md +0 -517
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/.github/FUNDING.yml +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/COMPATIBILITY.md +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/LICENSE +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/MIGRATION.md +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/benchmarks/README.md +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/benchmarks/__init__.py +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/benchmarks/benchmark.py +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/justfile +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/src/numpy_vector_store/py.typed +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/tests/__init__.py +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/tests/fixtures/README.md +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/tests/fixtures/vector-store-0.4.0-format-v1.npz +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/tests/test_benchmark.py +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/tests/test_package.py +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/tests/test_release_version.py +0 -0
- {numpy_vector_store-0.7.0 → numpy_vector_store-0.7.1}/tools/verify_release_version.py +0 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
name: Checks
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
inputs:
|
|
6
|
+
release-tag:
|
|
7
|
+
description: Optional v-prefixed tag that must match the distributions
|
|
8
|
+
required: false
|
|
9
|
+
type: string
|
|
10
|
+
default: ""
|
|
11
|
+
outputs:
|
|
12
|
+
distributions-artifact-id:
|
|
13
|
+
description: Artifact ID for the verified wheel and source distribution
|
|
14
|
+
value: ${{ jobs.distributions.outputs.artifact-id }}
|
|
15
|
+
pull_request:
|
|
16
|
+
push:
|
|
17
|
+
branches:
|
|
18
|
+
- main
|
|
19
|
+
workflow_dispatch:
|
|
20
|
+
|
|
21
|
+
concurrency:
|
|
22
|
+
group: checks-${{ github.workflow }}-${{ github.ref }}
|
|
23
|
+
cancel-in-progress: true
|
|
24
|
+
|
|
25
|
+
permissions:
|
|
26
|
+
contents: read
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
quality:
|
|
30
|
+
name: Lint, format, and type-check
|
|
31
|
+
runs-on: blacksmith-4vcpu-ubuntu-2404
|
|
32
|
+
timeout-minutes: 10
|
|
33
|
+
|
|
34
|
+
steps:
|
|
35
|
+
- name: Check out repository
|
|
36
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
37
|
+
with:
|
|
38
|
+
persist-credentials: false
|
|
39
|
+
|
|
40
|
+
- name: Set up Python
|
|
41
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
42
|
+
with:
|
|
43
|
+
python-version: "3.13"
|
|
44
|
+
|
|
45
|
+
- name: Set up uv
|
|
46
|
+
uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
47
|
+
with:
|
|
48
|
+
version: "0.13.7"
|
|
49
|
+
python-version: "3.13"
|
|
50
|
+
enable-cache: true
|
|
51
|
+
|
|
52
|
+
- name: Install project dependencies
|
|
53
|
+
run: uv sync --locked --group dev
|
|
54
|
+
|
|
55
|
+
- name: Run Ruff lint checks
|
|
56
|
+
run: uv run --locked ruff check .
|
|
57
|
+
|
|
58
|
+
- name: Check Ruff formatting
|
|
59
|
+
run: uv run --locked ruff format --check .
|
|
60
|
+
|
|
61
|
+
- name: Run mypy
|
|
62
|
+
run: uv run --locked mypy src/ benchmarks/ tools/
|
|
63
|
+
|
|
64
|
+
tests:
|
|
65
|
+
name: Test Python ${{ matrix.python-version }}
|
|
66
|
+
runs-on: blacksmith-4vcpu-ubuntu-2404
|
|
67
|
+
timeout-minutes: 15
|
|
68
|
+
strategy:
|
|
69
|
+
fail-fast: false
|
|
70
|
+
matrix:
|
|
71
|
+
python-version:
|
|
72
|
+
- "3.11"
|
|
73
|
+
- "3.12"
|
|
74
|
+
- "3.13"
|
|
75
|
+
- "3.14"
|
|
76
|
+
|
|
77
|
+
steps:
|
|
78
|
+
- name: Check out repository
|
|
79
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
80
|
+
with:
|
|
81
|
+
persist-credentials: false
|
|
82
|
+
|
|
83
|
+
- name: Set up Python
|
|
84
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
85
|
+
with:
|
|
86
|
+
python-version: ${{ matrix.python-version }}
|
|
87
|
+
|
|
88
|
+
- name: Set up uv
|
|
89
|
+
uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
90
|
+
with:
|
|
91
|
+
version: "0.13.7"
|
|
92
|
+
python-version: ${{ matrix.python-version }}
|
|
93
|
+
enable-cache: true
|
|
94
|
+
|
|
95
|
+
- name: Install project dependencies
|
|
96
|
+
run: uv sync --locked --group dev
|
|
97
|
+
|
|
98
|
+
- name: Run tests
|
|
99
|
+
run: uv run --locked pytest
|
|
100
|
+
|
|
101
|
+
windows:
|
|
102
|
+
name: Test Windows on Python 3.13
|
|
103
|
+
runs-on: windows-latest
|
|
104
|
+
timeout-minutes: 15
|
|
105
|
+
|
|
106
|
+
steps:
|
|
107
|
+
- name: Check out repository
|
|
108
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
109
|
+
with:
|
|
110
|
+
persist-credentials: false
|
|
111
|
+
|
|
112
|
+
- name: Set up Python
|
|
113
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
114
|
+
with:
|
|
115
|
+
python-version: "3.13"
|
|
116
|
+
|
|
117
|
+
- name: Set up uv
|
|
118
|
+
uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
119
|
+
with:
|
|
120
|
+
version: "0.13.7"
|
|
121
|
+
python-version: "3.13"
|
|
122
|
+
enable-cache: true
|
|
123
|
+
|
|
124
|
+
- name: Install project dependencies
|
|
125
|
+
run: uv sync --locked --group dev
|
|
126
|
+
|
|
127
|
+
- name: Run tests
|
|
128
|
+
run: uv run --locked pytest
|
|
129
|
+
|
|
130
|
+
minimum-numpy:
|
|
131
|
+
name: Test minimum NumPy on Python 3.11
|
|
132
|
+
runs-on: blacksmith-4vcpu-ubuntu-2404
|
|
133
|
+
timeout-minutes: 15
|
|
134
|
+
|
|
135
|
+
steps:
|
|
136
|
+
- name: Check out repository
|
|
137
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
138
|
+
with:
|
|
139
|
+
persist-credentials: false
|
|
140
|
+
|
|
141
|
+
- name: Set up Python
|
|
142
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
143
|
+
with:
|
|
144
|
+
python-version: "3.11"
|
|
145
|
+
|
|
146
|
+
- name: Set up uv
|
|
147
|
+
uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
148
|
+
with:
|
|
149
|
+
version: "0.13.7"
|
|
150
|
+
python-version: "3.11"
|
|
151
|
+
enable-cache: true
|
|
152
|
+
|
|
153
|
+
- name: Run tests with the minimum NumPy version
|
|
154
|
+
run: >-
|
|
155
|
+
uv run
|
|
156
|
+
--isolated
|
|
157
|
+
--no-project
|
|
158
|
+
--python 3.11
|
|
159
|
+
--with-editable .
|
|
160
|
+
--with numpy==1.23.2
|
|
161
|
+
--with pytest==8.4.2
|
|
162
|
+
python -m pytest
|
|
163
|
+
|
|
164
|
+
distributions:
|
|
165
|
+
name: Build and test distributions
|
|
166
|
+
runs-on: blacksmith-4vcpu-ubuntu-2404
|
|
167
|
+
timeout-minutes: 15
|
|
168
|
+
outputs:
|
|
169
|
+
artifact-id: ${{ steps.upload.outputs.artifact-id }}
|
|
170
|
+
|
|
171
|
+
steps:
|
|
172
|
+
- name: Check out repository
|
|
173
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
174
|
+
with:
|
|
175
|
+
persist-credentials: false
|
|
176
|
+
|
|
177
|
+
- name: Set up Python
|
|
178
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
179
|
+
with:
|
|
180
|
+
python-version: "3.11"
|
|
181
|
+
|
|
182
|
+
- name: Set up uv
|
|
183
|
+
uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
|
|
184
|
+
with:
|
|
185
|
+
version: "0.13.7"
|
|
186
|
+
python-version: "3.11"
|
|
187
|
+
enable-cache: true
|
|
188
|
+
|
|
189
|
+
- name: Build wheel and source distribution
|
|
190
|
+
run: uv build --out-dir dist
|
|
191
|
+
|
|
192
|
+
- name: Verify release versions
|
|
193
|
+
env:
|
|
194
|
+
RELEASE_TAG: ${{ inputs.release-tag }}
|
|
195
|
+
run: |
|
|
196
|
+
if [[ -n "$RELEASE_TAG" ]]; then
|
|
197
|
+
uv run --locked python tools/verify_release_version.py --tag "$RELEASE_TAG"
|
|
198
|
+
else
|
|
199
|
+
uv run --locked python tools/verify_release_version.py
|
|
200
|
+
fi
|
|
201
|
+
|
|
202
|
+
- name: Check distribution metadata
|
|
203
|
+
run: uvx --from twine==7.0.0 twine check --strict dist/*
|
|
204
|
+
|
|
205
|
+
- name: Test installed wheel
|
|
206
|
+
run: >-
|
|
207
|
+
uv run
|
|
208
|
+
--isolated
|
|
209
|
+
--no-project
|
|
210
|
+
--python 3.11
|
|
211
|
+
--with ./dist/*.whl
|
|
212
|
+
python tools/verify_installed_distribution.py
|
|
213
|
+
|
|
214
|
+
- name: Test installed source distribution
|
|
215
|
+
run: >-
|
|
216
|
+
uv run
|
|
217
|
+
--isolated
|
|
218
|
+
--no-project
|
|
219
|
+
--python 3.11
|
|
220
|
+
--with ./dist/*.tar.gz
|
|
221
|
+
python tools/verify_installed_distribution.py
|
|
222
|
+
|
|
223
|
+
- name: Upload verified distributions
|
|
224
|
+
id: upload
|
|
225
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
226
|
+
with:
|
|
227
|
+
name: python-package-distributions-${{ github.run_id }}-${{ github.run_attempt }}
|
|
228
|
+
path: |
|
|
229
|
+
dist/*.whl
|
|
230
|
+
dist/*.tar.gz
|
|
231
|
+
if-no-files-found: error
|
|
232
|
+
retention-days: 7
|
|
233
|
+
compression-level: 0
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types:
|
|
6
|
+
- published
|
|
7
|
+
|
|
8
|
+
concurrency:
|
|
9
|
+
group: publish-pypi
|
|
10
|
+
cancel-in-progress: false
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
contents: read
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
validate:
|
|
17
|
+
name: Validate release
|
|
18
|
+
uses: ./.github/workflows/checks.yml
|
|
19
|
+
with:
|
|
20
|
+
release-tag: ${{ github.event.release.tag_name }}
|
|
21
|
+
|
|
22
|
+
publish-pypi:
|
|
23
|
+
name: Publish to PyPI
|
|
24
|
+
needs: validate
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
timeout-minutes: 10
|
|
27
|
+
environment:
|
|
28
|
+
name: pypi
|
|
29
|
+
url: https://pypi.org/p/numpy-vector-store
|
|
30
|
+
permissions:
|
|
31
|
+
id-token: write
|
|
32
|
+
|
|
33
|
+
steps:
|
|
34
|
+
- name: Download verified distributions
|
|
35
|
+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
36
|
+
with:
|
|
37
|
+
artifact-ids: ${{ needs.validate.outputs.distributions-artifact-id }}
|
|
38
|
+
path: dist
|
|
39
|
+
|
|
40
|
+
- name: Publish package distributions to PyPI
|
|
41
|
+
uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # release/v1
|
|
42
|
+
with:
|
|
43
|
+
packages-dir: dist/
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: Publish to TestPyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
concurrency:
|
|
7
|
+
group: publish-testpypi
|
|
8
|
+
cancel-in-progress: false
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
validate:
|
|
15
|
+
name: Validate release candidate
|
|
16
|
+
uses: ./.github/workflows/checks.yml
|
|
17
|
+
|
|
18
|
+
publish-testpypi:
|
|
19
|
+
name: Publish to TestPyPI
|
|
20
|
+
needs: validate
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
timeout-minutes: 10
|
|
23
|
+
environment:
|
|
24
|
+
name: testpypi
|
|
25
|
+
url: https://test.pypi.org/p/numpy-vector-store
|
|
26
|
+
permissions:
|
|
27
|
+
id-token: write
|
|
28
|
+
|
|
29
|
+
steps:
|
|
30
|
+
- name: Download verified distributions
|
|
31
|
+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
32
|
+
with:
|
|
33
|
+
artifact-ids: ${{ needs.validate.outputs.distributions-artifact-id }}
|
|
34
|
+
path: dist
|
|
35
|
+
|
|
36
|
+
- name: Publish package distributions to TestPyPI
|
|
37
|
+
uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # release/v1
|
|
38
|
+
with:
|
|
39
|
+
packages-dir: dist/
|
|
40
|
+
repository-url: https://test.pypi.org/legacy/
|
|
@@ -1,8 +1,96 @@
|
|
|
1
|
+
<!-- --8<-- [start:introduction] -->
|
|
2
|
+
|
|
1
3
|
# Changelog
|
|
2
4
|
|
|
3
5
|
This changelog records user-visible changes to NumPy Vector Store. Earlier
|
|
4
6
|
release notes remain available on the
|
|
5
|
-
[GitHub releases page](https://github.com/
|
|
7
|
+
[GitHub releases page](https://github.com/tvr-works/numpy-vector-store/releases).
|
|
8
|
+
|
|
9
|
+
<!-- --8<-- [end:introduction] -->
|
|
10
|
+
|
|
11
|
+
## 0.7.1 - 2026-11-13
|
|
12
|
+
|
|
13
|
+
This patch release corrects two search edge cases without changing the public
|
|
14
|
+
API, runtime requirements, or archive format. It also includes the documentation,
|
|
15
|
+
package-presentation, and release-workflow improvements merged since 0.7.0.
|
|
16
|
+
|
|
17
|
+
Most applications can upgrade without code changes or data migration. The
|
|
18
|
+
observable corrections are that very small normalized Euclidean distances no
|
|
19
|
+
longer collapse to zero, and valid row filters containing different integer
|
|
20
|
+
types are accepted.
|
|
21
|
+
|
|
22
|
+
### Search correctness
|
|
23
|
+
|
|
24
|
+
- Accumulate normalized Euclidean squared differences in `float64` before
|
|
25
|
+
taking their square root. Previously, a small difference could be represented
|
|
26
|
+
in `float32` while its square was too small to represent, making a nonzero
|
|
27
|
+
distance appear to be zero.
|
|
28
|
+
- Preserve nearest-row ordering, `top_k` selection, and zero-distance threshold
|
|
29
|
+
filtering for these cases, both with and without `within_rows`. Vector
|
|
30
|
+
storage remains `float32`; raw Euclidean, cosine, and dot-product calculation
|
|
31
|
+
paths are unchanged.
|
|
32
|
+
- Accept mixed Python and NumPy integer row filters such as
|
|
33
|
+
`[0, np.uint64(1)]`. NumPy can infer a floating-point array for mixed signed
|
|
34
|
+
and unsigned integers; validation now retains the original values when that
|
|
35
|
+
conversion would erase their integer types.
|
|
36
|
+
- Keep bulk validation for ordinary integer lists, tuples, and ranges, and
|
|
37
|
+
preserve the native NumPy integer-array fast path. Custom integer-index
|
|
38
|
+
objects continue to use the existing per-element validation fallback.
|
|
39
|
+
- Continue rejecting booleans, floating-point indexes, malformed shapes,
|
|
40
|
+
duplicate rows, and out-of-range indexes. Validation remains independent of
|
|
41
|
+
whether the store is empty.
|
|
42
|
+
|
|
43
|
+
### Documentation and package presentation
|
|
44
|
+
|
|
45
|
+
- Add the searchable [documentation website](https://vectors.tvr.works/) with
|
|
46
|
+
getting-started, search/filtering, persistence, ownership, deployment,
|
|
47
|
+
performance, API-reference, and compatibility guidance.
|
|
48
|
+
- Clarify the README's small-to-medium, in-process search positioning. Explain
|
|
49
|
+
deployment with an archive shipped alongside application code, where each
|
|
50
|
+
worker or replica loads its own in-memory store without a separate vector
|
|
51
|
+
database or shared-write coordination.
|
|
52
|
+
- Update package project links to the existing repository's new
|
|
53
|
+
`tvr-works/numpy-vector-store` location and add the documentation URL.
|
|
54
|
+
Distribution and import names remain `numpy-vector-store` and
|
|
55
|
+
`numpy_vector_store`.
|
|
56
|
+
- Keep documentation source, generated output, build tools, and the independent
|
|
57
|
+
docs environment out of the source distribution. Wheels remain package-only;
|
|
58
|
+
documentation tools add no runtime dependency.
|
|
59
|
+
- Build the public reference and executable guide examples against an exact,
|
|
60
|
+
verified published wheel in a separate locked environment. Development
|
|
61
|
+
changes and release preparation no longer replace the released API reference.
|
|
62
|
+
Prepared changelog entries stay out of the public site until its edition is
|
|
63
|
+
advanced after publication.
|
|
64
|
+
|
|
65
|
+
### Release validation and publishing
|
|
66
|
+
|
|
67
|
+
- Build distributions once in the validation workflow, check their versions and
|
|
68
|
+
metadata, and smoke-test clean wheel and source-distribution installations.
|
|
69
|
+
The publishing job downloads that verified artifact by its immutable ID
|
|
70
|
+
rather than rebuilding it with publishing credentials available.
|
|
71
|
+
- Pin the Hatchling build backend and publishing/validation tool revisions.
|
|
72
|
+
Retain the supported Python matrix, Windows coverage, and minimum-NumPy check.
|
|
73
|
+
- Configure environment-bound Trusted Publishers for the organization-owned
|
|
74
|
+
repository and document post-upload provenance and installation checks.
|
|
75
|
+
Production cutover is confirmed only after an authorized upload passes those
|
|
76
|
+
checks; the new configuration is not treated as verified merely because it
|
|
77
|
+
is present.
|
|
78
|
+
- Add independent documentation CI that checks the built site and runs rendered
|
|
79
|
+
examples. Pages publication requires successful docs CI for the exact source
|
|
80
|
+
commit, and branch previews are marked not to be indexed.
|
|
81
|
+
|
|
82
|
+
### Upgrade notes
|
|
83
|
+
|
|
84
|
+
- Continue supporting Python 3.11 through 3.14 and NumPy 1.23.2 or newer.
|
|
85
|
+
- Keep the existing methods, arguments, result types, and input-error categories.
|
|
86
|
+
- Continue reading and writing trusted format-version-1 archives without
|
|
87
|
+
conversion. Opaque metadata still uses pickle-backed object arrays; do not
|
|
88
|
+
open untrusted archives.
|
|
89
|
+
- No new feature family, API removal, runtime dependency, or archive migration
|
|
90
|
+
is introduced. These are corrections within the existing 0.7 contract, not
|
|
91
|
+
the separate 1.0 stability declaration.
|
|
92
|
+
|
|
93
|
+
<!-- --8<-- [start:published] -->
|
|
6
94
|
|
|
7
95
|
## 0.7.0 - 2026-08-24
|
|
8
96
|
|
|
@@ -540,3 +628,5 @@ intentionally break valid existing usage or change the `.npz` archive format.
|
|
|
540
628
|
- Environments using NumPy 1.20 must upgrade to NumPy 1.21.3 or newer.
|
|
541
629
|
- Inputs that previously produced `nan`, `inf`, or unreliable rankings now
|
|
542
630
|
raise `ValueError` instead.
|
|
631
|
+
|
|
632
|
+
<!-- --8<-- [end:published] -->
|