devpi-server 6.16.0__tar.gz → 6.17.0__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.
- {devpi_server-6.16.0 → devpi_server-6.17.0}/.flake8 +2 -2
- {devpi_server-6.16.0 → devpi_server-6.17.0}/CHANGELOG +47 -51
- {devpi_server-6.16.0 → devpi_server-6.17.0}/CHANGELOG.short.rst +47 -27
- {devpi_server-6.16.0 → devpi_server-6.17.0}/PKG-INFO +49 -29
- devpi_server-6.17.0/devpi_server/__init__.py +1 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/auth.py +6 -59
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/config.py +65 -50
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/genconfig.py +2 -2
- devpi_server-6.17.0/devpi_server/httpclient.py +255 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/importexport.py +9 -10
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/keyfs.py +1 -1
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/keyfs_sqlite_fs.py +1 -1
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/main.py +53 -83
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/middleware.py +1 -1
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/mirror.py +197 -41
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/model.py +27 -11
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/replica.py +248 -197
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/view_auth.py +31 -12
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/views.py +214 -170
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server.egg-info/PKG-INFO +49 -29
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server.egg-info/SOURCES.txt +1 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server.egg-info/requires.txt +1 -1
- {devpi_server-6.16.0 → devpi_server-6.17.0}/mypy.ini +1 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/pyproject.toml +118 -10
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/plugin.py +225 -16
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_auth.py +3 -18
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_config.py +26 -6
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_filestore.py +24 -20
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_importexport.py +10 -12
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_keyfs.py +1 -1
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_main.py +58 -28
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_mirror.py +249 -81
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_model.py +34 -67
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_replica.py +195 -112
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_streaming.py +2 -3
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_views.py +57 -16
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_views_push_external.py +148 -134
- {devpi_server-6.16.0 → devpi_server-6.17.0}/tox.ini +4 -1
- devpi_server-6.16.0/devpi_server/__init__.py +0 -1
- {devpi_server-6.16.0 → devpi_server-6.17.0}/LICENSE +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/MANIFEST.in +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/README.rst +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/__main__.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/auth_basic.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/auth_devpi.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/cfg/__init__.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/cfg/crontab.template +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/cfg/devpi.service.template +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/cfg/launchd-macos.txt.template +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/cfg/nginx-devpi-caching-http.conf.template +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/cfg/nginx-devpi-caching-location.conf.template +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/cfg/nginx-devpi-caching-proxy.conf.template +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/cfg/nginx-devpi-caching-server.conf.template +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/cfg/nginx-devpi.conf.template +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/cfg/supervisor-devpi.conf.template +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/cfg/supervisord.conf.template +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/cfg/windows-service.txt.template +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/exceptions.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/filestore.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/filestore_fs.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/fileutil.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/fsck.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/hookspecs.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/init.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/interfaces.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/keyfs_sqlite.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/keyfs_types.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/log.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/markers.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/mythread.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/passwd.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/py.typed +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/readonly.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/sizeof.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/vendor/__init__.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server/vendor/_pip.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server.egg-info/dependency_links.txt +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server.egg-info/entry_points.txt +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/devpi_server.egg-info/top_level.txt +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/pytest_devpi_server/__init__.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/setup.cfg +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/__init__.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/conftest.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/example.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/functional.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/badindexname/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/badusername/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/basescycle/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/createdmodified/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/deletedbase/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/mirrordata/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/mirrordata/root/pypi/dddttt/0.1.dev1/dddttt-0.1.dev1.tar.gz +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/modifiedpypi/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/nocreatedmodified/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/normalization/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/normalization/root/dev/hello.pkg/hello.pkg-1.0.tar.gz +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/normalization_merge/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/normalization_merge/root/dev/hello-pkg/hello.pkg-1.1.tar.gz +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/normalization_merge/root/dev/hello.pkg/hello.pkg-1.0.tar.gz +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/norootpypi/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/nouser/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/removedindexplugin/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/removedindexplugin/user/dev/pkg/pkg-1.0.tar.gz +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/toxresult_naming_scheme/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/toxresult_naming_scheme/root/dev/hello/0.9/hello-0.9.tar.gz +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/toxresult_naming_scheme/root/dev/hello/sha256=ed7002b439e9ac845f22357d822bac1444730fbdb6016d3ec9432297b9ec9f73/hello-0.9.tar.gz.toxresult0 +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/importexportdata/toxresult_upload_default/dataindex.json +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/py.typed +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/reqmock.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/simpypi.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_authcheck.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_conftest.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_fileutil.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_fsck.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_genconfig.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_keyfs_sqlite_fs.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_log.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_mirror_no_project_list.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_mythread.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_nginx.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_nginx_replica.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_permissions.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_readonly.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_replica_functional.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_stage_customizer.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_streaming_nginx.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_streaming_replica.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_streaming_replica_nginx.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_view_auth.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_views_patch.py +0 -0
- {devpi_server-6.16.0 → devpi_server-6.17.0}/test_devpi_server/test_views_status.py +0 -0
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
# E203 is ignored because we enforce ruff format which contradicts it
|
|
3
3
|
ignore = E203,E501,E704,E741,W503
|
|
4
4
|
per-file-ignores =
|
|
5
|
-
plugin.py:E127,E128,
|
|
5
|
+
plugin.py:E127,E128,E231
|
|
6
6
|
importexport.py:E127
|
|
7
|
-
model.py:E128,
|
|
7
|
+
model.py:E128,E231
|
|
8
8
|
test_importexport.py:E121
|
|
9
9
|
test*.py:E126,E127,E128,E225,E226,E231,E251
|
|
@@ -2,22 +2,66 @@
|
|
|
2
2
|
|
|
3
3
|
.. towncrier release notes start
|
|
4
4
|
|
|
5
|
-
6.
|
|
5
|
+
6.17.0 (2025-08-27)
|
|
6
6
|
===================
|
|
7
7
|
|
|
8
8
|
Deprecations and Removals
|
|
9
9
|
-------------------------
|
|
10
10
|
|
|
11
|
-
- Dropped support for
|
|
11
|
+
- Dropped support for migrating old password hashes that were replaced in devpi-server 4.2.0.
|
|
12
|
+
|
|
13
|
+
- Removed support for basic authorization in primary URL. The connection is already secured by a bearer token header.
|
|
12
14
|
|
|
15
|
+
- Removed the experimental ``--replica-cert`` option. The replica is already using a token via a shared secret, so this is redundant.
|
|
13
16
|
|
|
17
|
+
- Removed ``--replica-max-retries`` option. It wasn't implemented for async_httpget and didn't work correctly when streaming data.
|
|
14
18
|
|
|
15
19
|
Features
|
|
16
20
|
--------
|
|
17
21
|
|
|
18
|
-
-
|
|
22
|
+
- Use httpx for all data fetching for mirrors and fetch projects list asynchronously to allow update in background even after a timeout.
|
|
23
|
+
|
|
24
|
+
- Use httpx instead of requests when proxying from replicas to primary.
|
|
25
|
+
|
|
26
|
+
- Use httpx for all requests from replicas to primary.
|
|
19
27
|
|
|
28
|
+
- Use httpx when pushing releases to external index.
|
|
20
29
|
|
|
30
|
+
- Added ``mirror_ignore_serial_header`` mirror index option, which allows switching from PyPI to a mirror without serials header when set to ``True``, otherwise only stale links will be served and no updates be stored.
|
|
31
|
+
|
|
32
|
+
- The HTTP cache information for mirrored projects is persisted and re-used on server restarts.
|
|
33
|
+
|
|
34
|
+
- Added ``--file-replication-skip-indexes`` option to skip file replication for ``all``, by index type (i.e. ``mirror``) or index name (i.e. ``root/pypi``).
|
|
35
|
+
|
|
36
|
+
Bug Fixes
|
|
37
|
+
---------
|
|
38
|
+
|
|
39
|
+
- Correctly handle lists for ``Provides-Extra`` and ``License-File`` metadata in database.
|
|
40
|
+
|
|
41
|
+
- Fix traceback by returning 401 error code when using wrong password with a user that was created using an authentication plugin like devpi-ldap which passes authentication through in that case.
|
|
42
|
+
|
|
43
|
+
- Fix #1053: allow users to update their passwords when ``--restrict-modify`` is used.
|
|
44
|
+
|
|
45
|
+
- Fix #1097: return 404 when trying to POST to +simple.
|
|
46
|
+
|
|
47
|
+
Other Changes
|
|
48
|
+
-------------
|
|
49
|
+
|
|
50
|
+
- Changed User-Agent when fetching data for mirrors from just "server" to "devpi-server".
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
6.16.0 (2025-06-25)
|
|
54
|
+
===================
|
|
55
|
+
|
|
56
|
+
Deprecations and Removals
|
|
57
|
+
-------------------------
|
|
58
|
+
|
|
59
|
+
- Dropped support for Python 3.7 and 3.8.
|
|
60
|
+
|
|
61
|
+
Features
|
|
62
|
+
--------
|
|
63
|
+
|
|
64
|
+
- Update stored package metadata fields to version 2.4 for license expressions (PEP 639).
|
|
21
65
|
|
|
22
66
|
Bug Fixes
|
|
23
67
|
---------
|
|
@@ -27,7 +71,6 @@ Bug Fixes
|
|
|
27
71
|
- Keep original metadata_version in database.
|
|
28
72
|
|
|
29
73
|
|
|
30
|
-
|
|
31
74
|
6.15.0 (2025-05-18)
|
|
32
75
|
===================
|
|
33
76
|
|
|
@@ -37,7 +80,6 @@ Features
|
|
|
37
80
|
- Add ``--connection-limit`` option to devpi-server passed on to waitress.
|
|
38
81
|
|
|
39
82
|
|
|
40
|
-
|
|
41
83
|
6.14.0 (2024-10-16)
|
|
42
84
|
===================
|
|
43
85
|
|
|
@@ -50,15 +92,12 @@ Features
|
|
|
50
92
|
|
|
51
93
|
- Allow pushing of documentation only with no release files. Requires devpi-client 7.2.0.
|
|
52
94
|
|
|
53
|
-
|
|
54
|
-
|
|
55
95
|
Bug Fixes
|
|
56
96
|
---------
|
|
57
97
|
|
|
58
98
|
- No longer automatically "register" a project when pushing releases to PyPI. The reply changed from HTTP status 410 to 400 breaking the upload. With devpi-client 7.2.0 there is a ``--register-project`` option if it is still required for some other package registry.
|
|
59
99
|
|
|
60
100
|
|
|
61
|
-
|
|
62
101
|
6.13.0 (2024-09-19)
|
|
63
102
|
===================
|
|
64
103
|
|
|
@@ -70,8 +109,6 @@ Deprecations and Removals
|
|
|
70
109
|
Using the old terms will now output warnings.
|
|
71
110
|
The ``+status`` API has additional fields and the ``role`` field content will change with 7.0.0.
|
|
72
111
|
|
|
73
|
-
|
|
74
|
-
|
|
75
112
|
Features
|
|
76
113
|
--------
|
|
77
114
|
|
|
@@ -79,8 +116,6 @@ Features
|
|
|
79
116
|
|
|
80
117
|
- Added support uv pip as an installer.
|
|
81
118
|
|
|
82
|
-
|
|
83
|
-
|
|
84
119
|
Bug Fixes
|
|
85
120
|
---------
|
|
86
121
|
|
|
@@ -93,7 +128,6 @@ Bug Fixes
|
|
|
93
128
|
- Only warn about replica not being in sync instead of fatal status while still replicating.
|
|
94
129
|
|
|
95
130
|
|
|
96
|
-
|
|
97
131
|
6.12.1 (2024-07-24)
|
|
98
132
|
===================
|
|
99
133
|
|
|
@@ -107,7 +141,6 @@ Bug Fixes
|
|
|
107
141
|
- Fix #1044: Correctly update cache expiry time when mirrored server returns 304 Not Modified.
|
|
108
142
|
|
|
109
143
|
|
|
110
|
-
|
|
111
144
|
6.12.0 (2024-06-25)
|
|
112
145
|
===================
|
|
113
146
|
|
|
@@ -118,15 +151,12 @@ Features
|
|
|
118
151
|
|
|
119
152
|
- Added ``devpiserver_on_toxresult_upload_forbidden`` hook to allow returning a custom message and result (403 or 200).
|
|
120
153
|
|
|
121
|
-
|
|
122
|
-
|
|
123
154
|
Bug Fixes
|
|
124
155
|
---------
|
|
125
156
|
|
|
126
157
|
- Return json data if toxresult upload is forbidden.
|
|
127
158
|
|
|
128
159
|
|
|
129
|
-
|
|
130
160
|
6.11.0 (2024-04-20)
|
|
131
161
|
===================
|
|
132
162
|
|
|
@@ -137,8 +167,6 @@ Features
|
|
|
137
167
|
|
|
138
168
|
- Fix #983: Add plugin hook for mirror authentication header.
|
|
139
169
|
|
|
140
|
-
|
|
141
|
-
|
|
142
170
|
Bug Fixes
|
|
143
171
|
---------
|
|
144
172
|
|
|
@@ -147,7 +175,6 @@ Bug Fixes
|
|
|
147
175
|
- Fix #1033: Use ``int`` for ``--mirror-cache-expiry`` to fix value of ``proxy_cache_valid`` in nginx caching config.
|
|
148
176
|
|
|
149
177
|
|
|
150
|
-
|
|
151
178
|
6.10.0 (2023-12-19)
|
|
152
179
|
===================
|
|
153
180
|
|
|
@@ -158,8 +185,6 @@ Features
|
|
|
158
185
|
|
|
159
186
|
- Fix #998: Use the pure Python httpx library instead of aiohttp to prevent delays in supporting newest Python releases.
|
|
160
187
|
|
|
161
|
-
|
|
162
|
-
|
|
163
188
|
Bug Fixes
|
|
164
189
|
---------
|
|
165
190
|
|
|
@@ -168,7 +193,6 @@ Bug Fixes
|
|
|
168
193
|
- Only compare hostname instead of full URL prefix when parsing mirror packages to fix mirrors with basic authentication and absolute URLs. See #1006
|
|
169
194
|
|
|
170
195
|
|
|
171
|
-
|
|
172
196
|
6.9.2 (2023-08-06)
|
|
173
197
|
==================
|
|
174
198
|
|
|
@@ -199,7 +223,6 @@ Features
|
|
|
199
223
|
|
|
200
224
|
- Fix #931: Add ``mirror_no_project_list`` setting for mirror indexes that have no full project list like google cloud artifacts or if you want to prevent downloading the full list for huge indexes like PyPI.
|
|
201
225
|
|
|
202
|
-
|
|
203
226
|
Bug Fixes
|
|
204
227
|
---------
|
|
205
228
|
|
|
@@ -222,7 +245,6 @@ Features
|
|
|
222
245
|
|
|
223
246
|
- Fix #929: Cache normalized project names per transaction on mirror index instances.
|
|
224
247
|
|
|
225
|
-
|
|
226
248
|
Bug Fixes
|
|
227
249
|
---------
|
|
228
250
|
|
|
@@ -245,7 +267,6 @@ Features
|
|
|
245
267
|
|
|
246
268
|
- Set headers to prevent caching for simple links with stale results.
|
|
247
269
|
|
|
248
|
-
|
|
249
270
|
Bug Fixes
|
|
250
271
|
---------
|
|
251
272
|
|
|
@@ -283,7 +304,6 @@ Features
|
|
|
283
304
|
|
|
284
305
|
- Support `PEP-691 <https://peps.python.org/pep-0691/>`_ conformant fetching for mirrors, and requests with JSON result for installers. Proxy servers should add compression support for the ``application/vnd.pypi.simple.v1+json`` content type (``gzip_types`` for nginx).
|
|
285
306
|
|
|
286
|
-
|
|
287
307
|
Bug Fixes
|
|
288
308
|
---------
|
|
289
309
|
|
|
@@ -325,7 +345,6 @@ Features
|
|
|
325
345
|
|
|
326
346
|
- Better logging and handling if a thread unexpectedly dies.
|
|
327
347
|
|
|
328
|
-
|
|
329
348
|
Bug Fixes
|
|
330
349
|
---------
|
|
331
350
|
|
|
@@ -346,13 +365,11 @@ Deprecations and Removals
|
|
|
346
365
|
|
|
347
366
|
- As announced with 6.0.0, support for Python 3.6 has been dropped, because it has reached its end of life.
|
|
348
367
|
|
|
349
|
-
|
|
350
368
|
Features
|
|
351
369
|
--------
|
|
352
370
|
|
|
353
371
|
- When an installer user agent is detected the full list of projects is returned unsorted and with less info to improve performance and reduce memory usage.
|
|
354
372
|
|
|
355
|
-
|
|
356
373
|
Bug Fixes
|
|
357
374
|
---------
|
|
358
375
|
|
|
@@ -378,7 +395,6 @@ Features
|
|
|
378
395
|
|
|
379
396
|
- Use aiohttp (asyncio) for fetching release links from mirrors to return stale links immediately in case of a timeout, but update the database in the background for the next request.
|
|
380
397
|
|
|
381
|
-
|
|
382
398
|
Bug Fixes
|
|
383
399
|
---------
|
|
384
400
|
|
|
@@ -412,7 +428,6 @@ Deprecations and Removals
|
|
|
412
428
|
|
|
413
429
|
- Renamed 'pypi_submit' permission to 'upload'. The old permission still works, but will be removed in a later major release.
|
|
414
430
|
|
|
415
|
-
|
|
416
431
|
Features
|
|
417
432
|
--------
|
|
418
433
|
|
|
@@ -420,7 +435,6 @@ Features
|
|
|
420
435
|
|
|
421
436
|
- Allow user and index URLs to work with a trailing slash.
|
|
422
437
|
|
|
423
|
-
|
|
424
438
|
Bug Fixes
|
|
425
439
|
---------
|
|
426
440
|
|
|
@@ -448,7 +462,6 @@ Deprecations and Removals
|
|
|
448
462
|
|
|
449
463
|
- Removed deprecated ``--start``, ``--stop`` and ``--status`` options.
|
|
450
464
|
|
|
451
|
-
|
|
452
465
|
Features
|
|
453
466
|
--------
|
|
454
467
|
|
|
@@ -480,7 +493,6 @@ Features
|
|
|
480
493
|
|
|
481
494
|
- The user creation and modification time is now stored. Adding or removing an index doesn't count as a modification.
|
|
482
495
|
|
|
483
|
-
|
|
484
496
|
Bug Fixes
|
|
485
497
|
---------
|
|
486
498
|
|
|
@@ -492,7 +504,6 @@ Bug Fixes
|
|
|
492
504
|
|
|
493
505
|
- Handle cases where the ``Content-Type`` header from a mirror can be an empty string.
|
|
494
506
|
|
|
495
|
-
|
|
496
507
|
Other Changes
|
|
497
508
|
-------------
|
|
498
509
|
|
|
@@ -559,7 +570,6 @@ Features
|
|
|
559
570
|
|
|
560
571
|
- On import files for mirror indexes are now imported when they were included in the dump (see ``--include-mirrored-files``).
|
|
561
572
|
|
|
562
|
-
|
|
563
573
|
Bug Fixes
|
|
564
574
|
---------
|
|
565
575
|
|
|
@@ -587,7 +597,6 @@ Features
|
|
|
587
597
|
|
|
588
598
|
- proxy requests from the replica to the master will use number of seconds from the new ``--proxy-timeout`` option as their timeout value.
|
|
589
599
|
|
|
590
|
-
|
|
591
600
|
Bug Fixes
|
|
592
601
|
---------
|
|
593
602
|
|
|
@@ -610,7 +619,6 @@ Deprecations and Removals
|
|
|
610
619
|
|
|
611
620
|
- The ``--passwd`` option is deprecated, use the new ``devpi-passwd`` command instead.
|
|
612
621
|
|
|
613
|
-
|
|
614
622
|
Features
|
|
615
623
|
--------
|
|
616
624
|
|
|
@@ -624,7 +632,6 @@ Features
|
|
|
624
632
|
|
|
625
633
|
- Storage options can now be specified as a dict in yaml config files.
|
|
626
634
|
|
|
627
|
-
|
|
628
635
|
Bug Fixes
|
|
629
636
|
---------
|
|
630
637
|
|
|
@@ -646,7 +653,6 @@ Bug Fixes
|
|
|
646
653
|
|
|
647
654
|
- Unnecessary database writes where the final value didn't change are now prevented.
|
|
648
655
|
|
|
649
|
-
|
|
650
656
|
Other Changes
|
|
651
657
|
-------------
|
|
652
658
|
|
|
@@ -680,7 +686,6 @@ Deprecations and Removals
|
|
|
680
686
|
|
|
681
687
|
- deprecated Python 2.7 support. This is the last major version supporting Python 2.7. For upgrading to Python 3.x you have to export your data using your current setup with Python 2.7 and import it in a new installation with Python 3.x.
|
|
682
688
|
|
|
683
|
-
|
|
684
689
|
Features
|
|
685
690
|
--------
|
|
686
691
|
|
|
@@ -698,7 +703,6 @@ Features
|
|
|
698
703
|
|
|
699
704
|
- when credentials for the user are rejected, the error message now says so instead of claiming the user could not be found.
|
|
700
705
|
|
|
701
|
-
|
|
702
706
|
Other Changes
|
|
703
707
|
-------------
|
|
704
708
|
|
|
@@ -733,7 +737,6 @@ Features
|
|
|
733
737
|
|
|
734
738
|
- add ``--hard-links`` support for replicas together with the ``--replica-file-search-path`` option. When a matching file is found it's hard linked instead of writing a copy.
|
|
735
739
|
|
|
736
|
-
|
|
737
740
|
Bug Fixes
|
|
738
741
|
---------
|
|
739
742
|
|
|
@@ -743,7 +746,6 @@ Bug Fixes
|
|
|
743
746
|
|
|
744
747
|
- use timeout when waiting for data from master in replica on mirror simple pages.
|
|
745
748
|
|
|
746
|
-
|
|
747
749
|
Other Changes
|
|
748
750
|
-------------
|
|
749
751
|
|
|
@@ -775,7 +777,6 @@ Features
|
|
|
775
777
|
|
|
776
778
|
- The PATCH method of indexes supports a list of arguments with operations in the form of ``key=value`` for setting values and for lists in the form of ``key+=value`` and ``key-=value`` to add and remove items. This prevents undoing changes sent in concurrent PATCH requests.
|
|
777
779
|
|
|
778
|
-
|
|
779
780
|
Bug Fixes
|
|
780
781
|
---------
|
|
781
782
|
|
|
@@ -805,7 +806,6 @@ Deprecations and Removals
|
|
|
805
806
|
|
|
806
807
|
- Deprecated DEVPI_SERVERDIR environment variable in favor of DEVPISERVER_SERVERDIR to be consistent with the other option overwrites.
|
|
807
808
|
|
|
808
|
-
|
|
809
809
|
Features
|
|
810
810
|
--------
|
|
811
811
|
|
|
@@ -825,7 +825,6 @@ Features
|
|
|
825
825
|
|
|
826
826
|
- Better handling of 404s in mirror indexes. Every project not found would create an entry in the database which would grow it unnecessarily.
|
|
827
827
|
|
|
828
|
-
|
|
829
828
|
Bug Fixes
|
|
830
829
|
---------
|
|
831
830
|
|
|
@@ -863,7 +862,6 @@ Features
|
|
|
863
862
|
|
|
864
863
|
- add `--request-timeout` option to provide adjustable request timeout
|
|
865
864
|
|
|
866
|
-
|
|
867
865
|
Bug Fixes
|
|
868
866
|
---------
|
|
869
867
|
|
|
@@ -889,7 +887,6 @@ Features
|
|
|
889
887
|
|
|
890
888
|
- Use ``pypi.org`` as new default for ``root/pypi`` mirror index.
|
|
891
889
|
|
|
892
|
-
|
|
893
890
|
Bug Fixes
|
|
894
891
|
---------
|
|
895
892
|
|
|
@@ -909,7 +906,6 @@ Features
|
|
|
909
906
|
|
|
910
907
|
- fix issue469: Add ``acl_toxresult_upload`` to index configuration.
|
|
911
908
|
|
|
912
|
-
|
|
913
909
|
Bug Fixes
|
|
914
910
|
---------
|
|
915
911
|
|
|
@@ -9,22 +9,66 @@ Changelog
|
|
|
9
9
|
|
|
10
10
|
.. towncrier release notes start
|
|
11
11
|
|
|
12
|
-
6.
|
|
12
|
+
6.17.0 (2025-08-27)
|
|
13
13
|
===================
|
|
14
14
|
|
|
15
15
|
Deprecations and Removals
|
|
16
16
|
-------------------------
|
|
17
17
|
|
|
18
|
-
- Dropped support for
|
|
18
|
+
- Dropped support for migrating old password hashes that were replaced in devpi-server 4.2.0.
|
|
19
19
|
|
|
20
|
+
- Removed support for basic authorization in primary URL. The connection is already secured by a bearer token header.
|
|
20
21
|
|
|
22
|
+
- Removed the experimental ``--replica-cert`` option. The replica is already using a token via a shared secret, so this is redundant.
|
|
23
|
+
|
|
24
|
+
- Removed ``--replica-max-retries`` option. It wasn't implemented for async_httpget and didn't work correctly when streaming data.
|
|
21
25
|
|
|
22
26
|
Features
|
|
23
27
|
--------
|
|
24
28
|
|
|
25
|
-
-
|
|
29
|
+
- Use httpx for all data fetching for mirrors and fetch projects list asynchronously to allow update in background even after a timeout.
|
|
30
|
+
|
|
31
|
+
- Use httpx instead of requests when proxying from replicas to primary.
|
|
32
|
+
|
|
33
|
+
- Use httpx for all requests from replicas to primary.
|
|
34
|
+
|
|
35
|
+
- Use httpx when pushing releases to external index.
|
|
26
36
|
|
|
37
|
+
- Added ``mirror_ignore_serial_header`` mirror index option, which allows switching from PyPI to a mirror without serials header when set to ``True``, otherwise only stale links will be served and no updates be stored.
|
|
27
38
|
|
|
39
|
+
- The HTTP cache information for mirrored projects is persisted and re-used on server restarts.
|
|
40
|
+
|
|
41
|
+
- Added ``--file-replication-skip-indexes`` option to skip file replication for ``all``, by index type (i.e. ``mirror``) or index name (i.e. ``root/pypi``).
|
|
42
|
+
|
|
43
|
+
Bug Fixes
|
|
44
|
+
---------
|
|
45
|
+
|
|
46
|
+
- Correctly handle lists for ``Provides-Extra`` and ``License-File`` metadata in database.
|
|
47
|
+
|
|
48
|
+
- Fix traceback by returning 401 error code when using wrong password with a user that was created using an authentication plugin like devpi-ldap which passes authentication through in that case.
|
|
49
|
+
|
|
50
|
+
- Fix #1053: allow users to update their passwords when ``--restrict-modify`` is used.
|
|
51
|
+
|
|
52
|
+
- Fix #1097: return 404 when trying to POST to +simple.
|
|
53
|
+
|
|
54
|
+
Other Changes
|
|
55
|
+
-------------
|
|
56
|
+
|
|
57
|
+
- Changed User-Agent when fetching data for mirrors from just "server" to "devpi-server".
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
6.16.0 (2025-06-25)
|
|
61
|
+
===================
|
|
62
|
+
|
|
63
|
+
Deprecations and Removals
|
|
64
|
+
-------------------------
|
|
65
|
+
|
|
66
|
+
- Dropped support for Python 3.7 and 3.8.
|
|
67
|
+
|
|
68
|
+
Features
|
|
69
|
+
--------
|
|
70
|
+
|
|
71
|
+
- Update stored package metadata fields to version 2.4 for license expressions (PEP 639).
|
|
28
72
|
|
|
29
73
|
Bug Fixes
|
|
30
74
|
---------
|
|
@@ -34,7 +78,6 @@ Bug Fixes
|
|
|
34
78
|
- Keep original metadata_version in database.
|
|
35
79
|
|
|
36
80
|
|
|
37
|
-
|
|
38
81
|
6.15.0 (2025-05-18)
|
|
39
82
|
===================
|
|
40
83
|
|
|
@@ -44,7 +87,6 @@ Features
|
|
|
44
87
|
- Add ``--connection-limit`` option to devpi-server passed on to waitress.
|
|
45
88
|
|
|
46
89
|
|
|
47
|
-
|
|
48
90
|
6.14.0 (2024-10-16)
|
|
49
91
|
===================
|
|
50
92
|
|
|
@@ -57,15 +99,12 @@ Features
|
|
|
57
99
|
|
|
58
100
|
- Allow pushing of documentation only with no release files. Requires devpi-client 7.2.0.
|
|
59
101
|
|
|
60
|
-
|
|
61
|
-
|
|
62
102
|
Bug Fixes
|
|
63
103
|
---------
|
|
64
104
|
|
|
65
105
|
- No longer automatically "register" a project when pushing releases to PyPI. The reply changed from HTTP status 410 to 400 breaking the upload. With devpi-client 7.2.0 there is a ``--register-project`` option if it is still required for some other package registry.
|
|
66
106
|
|
|
67
107
|
|
|
68
|
-
|
|
69
108
|
6.13.0 (2024-09-19)
|
|
70
109
|
===================
|
|
71
110
|
|
|
@@ -77,8 +116,6 @@ Deprecations and Removals
|
|
|
77
116
|
Using the old terms will now output warnings.
|
|
78
117
|
The ``+status`` API has additional fields and the ``role`` field content will change with 7.0.0.
|
|
79
118
|
|
|
80
|
-
|
|
81
|
-
|
|
82
119
|
Features
|
|
83
120
|
--------
|
|
84
121
|
|
|
@@ -86,8 +123,6 @@ Features
|
|
|
86
123
|
|
|
87
124
|
- Added support uv pip as an installer.
|
|
88
125
|
|
|
89
|
-
|
|
90
|
-
|
|
91
126
|
Bug Fixes
|
|
92
127
|
---------
|
|
93
128
|
|
|
@@ -99,18 +134,3 @@ Bug Fixes
|
|
|
99
134
|
|
|
100
135
|
- Only warn about replica not being in sync instead of fatal status while still replicating.
|
|
101
136
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
6.12.1 (2024-07-24)
|
|
105
|
-
===================
|
|
106
|
-
|
|
107
|
-
Bug Fixes
|
|
108
|
-
---------
|
|
109
|
-
|
|
110
|
-
- Support Python 3.13 by depending on legacy-cgi.
|
|
111
|
-
|
|
112
|
-
- Preserve query string when proxying requests from replica to primary. This fixes force removal on non-volatile indexes and probably other bugs.
|
|
113
|
-
|
|
114
|
-
- Fix #1044: Correctly update cache expiry time when mirrored server returns 304 Not Modified.
|
|
115
|
-
|
|
116
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devpi-server
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.17.0
|
|
4
4
|
Summary: devpi-server: reliable, private, and pypi.org caching server
|
|
5
5
|
Maintainer-email: Florian Schulze <mail@pyfidelity.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -32,7 +32,7 @@ Requires-Dist: argon2-cffi
|
|
|
32
32
|
Requires-Dist: attrs>=22.2.0
|
|
33
33
|
Requires-Dist: defusedxml
|
|
34
34
|
Requires-Dist: devpi_common<5,>3.6.0
|
|
35
|
-
Requires-Dist: httpx
|
|
35
|
+
Requires-Dist: httpx<1
|
|
36
36
|
Requires-Dist: itsdangerous>=0.24
|
|
37
37
|
Requires-Dist: lazy
|
|
38
38
|
Requires-Dist: legacy-cgi; python_version >= "3.13"
|
|
@@ -121,22 +121,66 @@ Changelog
|
|
|
121
121
|
|
|
122
122
|
.. towncrier release notes start
|
|
123
123
|
|
|
124
|
-
6.
|
|
124
|
+
6.17.0 (2025-08-27)
|
|
125
125
|
===================
|
|
126
126
|
|
|
127
127
|
Deprecations and Removals
|
|
128
128
|
-------------------------
|
|
129
129
|
|
|
130
|
-
- Dropped support for
|
|
130
|
+
- Dropped support for migrating old password hashes that were replaced in devpi-server 4.2.0.
|
|
131
131
|
|
|
132
|
+
- Removed support for basic authorization in primary URL. The connection is already secured by a bearer token header.
|
|
132
133
|
|
|
134
|
+
- Removed the experimental ``--replica-cert`` option. The replica is already using a token via a shared secret, so this is redundant.
|
|
135
|
+
|
|
136
|
+
- Removed ``--replica-max-retries`` option. It wasn't implemented for async_httpget and didn't work correctly when streaming data.
|
|
133
137
|
|
|
134
138
|
Features
|
|
135
139
|
--------
|
|
136
140
|
|
|
137
|
-
-
|
|
141
|
+
- Use httpx for all data fetching for mirrors and fetch projects list asynchronously to allow update in background even after a timeout.
|
|
142
|
+
|
|
143
|
+
- Use httpx instead of requests when proxying from replicas to primary.
|
|
144
|
+
|
|
145
|
+
- Use httpx for all requests from replicas to primary.
|
|
146
|
+
|
|
147
|
+
- Use httpx when pushing releases to external index.
|
|
138
148
|
|
|
149
|
+
- Added ``mirror_ignore_serial_header`` mirror index option, which allows switching from PyPI to a mirror without serials header when set to ``True``, otherwise only stale links will be served and no updates be stored.
|
|
139
150
|
|
|
151
|
+
- The HTTP cache information for mirrored projects is persisted and re-used on server restarts.
|
|
152
|
+
|
|
153
|
+
- Added ``--file-replication-skip-indexes`` option to skip file replication for ``all``, by index type (i.e. ``mirror``) or index name (i.e. ``root/pypi``).
|
|
154
|
+
|
|
155
|
+
Bug Fixes
|
|
156
|
+
---------
|
|
157
|
+
|
|
158
|
+
- Correctly handle lists for ``Provides-Extra`` and ``License-File`` metadata in database.
|
|
159
|
+
|
|
160
|
+
- Fix traceback by returning 401 error code when using wrong password with a user that was created using an authentication plugin like devpi-ldap which passes authentication through in that case.
|
|
161
|
+
|
|
162
|
+
- Fix #1053: allow users to update their passwords when ``--restrict-modify`` is used.
|
|
163
|
+
|
|
164
|
+
- Fix #1097: return 404 when trying to POST to +simple.
|
|
165
|
+
|
|
166
|
+
Other Changes
|
|
167
|
+
-------------
|
|
168
|
+
|
|
169
|
+
- Changed User-Agent when fetching data for mirrors from just "server" to "devpi-server".
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
6.16.0 (2025-06-25)
|
|
173
|
+
===================
|
|
174
|
+
|
|
175
|
+
Deprecations and Removals
|
|
176
|
+
-------------------------
|
|
177
|
+
|
|
178
|
+
- Dropped support for Python 3.7 and 3.8.
|
|
179
|
+
|
|
180
|
+
Features
|
|
181
|
+
--------
|
|
182
|
+
|
|
183
|
+
- Update stored package metadata fields to version 2.4 for license expressions (PEP 639).
|
|
140
184
|
|
|
141
185
|
Bug Fixes
|
|
142
186
|
---------
|
|
@@ -146,7 +190,6 @@ Bug Fixes
|
|
|
146
190
|
- Keep original metadata_version in database.
|
|
147
191
|
|
|
148
192
|
|
|
149
|
-
|
|
150
193
|
6.15.0 (2025-05-18)
|
|
151
194
|
===================
|
|
152
195
|
|
|
@@ -156,7 +199,6 @@ Features
|
|
|
156
199
|
- Add ``--connection-limit`` option to devpi-server passed on to waitress.
|
|
157
200
|
|
|
158
201
|
|
|
159
|
-
|
|
160
202
|
6.14.0 (2024-10-16)
|
|
161
203
|
===================
|
|
162
204
|
|
|
@@ -169,15 +211,12 @@ Features
|
|
|
169
211
|
|
|
170
212
|
- Allow pushing of documentation only with no release files. Requires devpi-client 7.2.0.
|
|
171
213
|
|
|
172
|
-
|
|
173
|
-
|
|
174
214
|
Bug Fixes
|
|
175
215
|
---------
|
|
176
216
|
|
|
177
217
|
- No longer automatically "register" a project when pushing releases to PyPI. The reply changed from HTTP status 410 to 400 breaking the upload. With devpi-client 7.2.0 there is a ``--register-project`` option if it is still required for some other package registry.
|
|
178
218
|
|
|
179
219
|
|
|
180
|
-
|
|
181
220
|
6.13.0 (2024-09-19)
|
|
182
221
|
===================
|
|
183
222
|
|
|
@@ -189,8 +228,6 @@ Deprecations and Removals
|
|
|
189
228
|
Using the old terms will now output warnings.
|
|
190
229
|
The ``+status`` API has additional fields and the ``role`` field content will change with 7.0.0.
|
|
191
230
|
|
|
192
|
-
|
|
193
|
-
|
|
194
231
|
Features
|
|
195
232
|
--------
|
|
196
233
|
|
|
@@ -198,8 +235,6 @@ Features
|
|
|
198
235
|
|
|
199
236
|
- Added support uv pip as an installer.
|
|
200
237
|
|
|
201
|
-
|
|
202
|
-
|
|
203
238
|
Bug Fixes
|
|
204
239
|
---------
|
|
205
240
|
|
|
@@ -211,18 +246,3 @@ Bug Fixes
|
|
|
211
246
|
|
|
212
247
|
- Only warn about replica not being in sync instead of fatal status while still replicating.
|
|
213
248
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
6.12.1 (2024-07-24)
|
|
217
|
-
===================
|
|
218
|
-
|
|
219
|
-
Bug Fixes
|
|
220
|
-
---------
|
|
221
|
-
|
|
222
|
-
- Support Python 3.13 by depending on legacy-cgi.
|
|
223
|
-
|
|
224
|
-
- Preserve query string when proxying requests from replica to primary. This fixes force removal on non-volatile indexes and probably other bugs.
|
|
225
|
-
|
|
226
|
-
- Fix #1044: Correctly update cache expiry time when mirrored server returns 304 Not Modified.
|
|
227
|
-
|
|
228
|
-
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "6.17.0"
|