pulp-python 3.10.0__tar.gz → 3.10.2__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.
- pulp_python-3.10.2/CHANGES.md +435 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/MANIFEST.in +2 -1
- pulp_python-3.10.2/PKG-INFO +43 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/functest_requirements.txt +5 -3
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/__init__.py +1 -1
- pulp_python-3.10.2/pulp_python/app/fields.py +12 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/models.py +5 -1
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/pypi/serializers.py +4 -3
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/pypi/views.py +2 -1
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/serializers.py +7 -6
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/tasks/sync.py +24 -3
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/functional/api/test_crud_content_unit.py +15 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/functional/api/test_download_content.py +32 -1
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/functional/api/test_full_mirror.py +13 -8
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/functional/api/test_pypi_apis.py +0 -20
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/functional/api/test_sync.py +17 -0
- pulp_python-3.10.2/pulp_python/tests/functional/conftest.py +185 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/functional/constants.py +7 -4
- pulp_python-3.10.2/pulp_python.egg-info/PKG-INFO +43 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python.egg-info/SOURCES.txt +2 -1
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python.egg-info/entry_points.txt +0 -1
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python.egg-info/requires.txt +2 -2
- pulp_python-3.10.2/pyproject.toml +72 -0
- pulp_python-3.10.2/requirements.txt +4 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/setup.py +1 -1
- pulp_python-3.10.2/test_requirements.txt +3 -0
- pulp-python-3.10.0/CHANGES.rst +0 -589
- pulp-python-3.10.0/PKG-INFO +0 -28
- pulp-python-3.10.0/pulp_python/tests/functional/conftest.py +0 -94
- pulp-python-3.10.0/pulp_python.egg-info/PKG-INFO +0 -28
- pulp-python-3.10.0/pyproject.toml +0 -27
- pulp-python-3.10.0/requirements.txt +0 -4
- pulp-python-3.10.0/test_requirements.txt +0 -10
- {pulp-python-3.10.0 → pulp_python-3.10.2}/COMMITMENT +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/COPYRIGHT +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/LICENSE +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/README.md +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/__init__.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/migrations/0001_initial.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/migrations/0002_pythonpackagecontent_python_version.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/migrations/0003_new_sync_filters.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/migrations/0004_DATA_swap_distribution_model.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/migrations/0005_pythonpackagecontent_sha256.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/migrations/0006_pythonrepository_autopublish.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/migrations/0007_pythonpackagecontent_mv-2-1.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/migrations/0008_pythonpackagecontent_unique_sha256.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/migrations/0009_pythondistribution_allow_uploads.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/migrations/0010_update_json_field.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/migrations/0011_alter_pythondistribution_distribution_ptr_and_more.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/migrations/__init__.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/pypi/__init__.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/settings.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/tasks/__init__.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/tasks/publish.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/tasks/upload.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/urls.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/utils.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/viewsets.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/webserver_snippets/__init__.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/webserver_snippets/apache.conf +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/app/webserver_snippets/nginx.conf +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/__init__.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/functional/__init__.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/functional/api/__init__.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/functional/api/test_auto_publish.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/functional/api/test_consume_content.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/functional/api/test_crud_publications.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/functional/api/test_crud_remotes.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/functional/utils.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/unit/__init__.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/unit/test_models.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/upgrade/__init__.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/upgrade/post/__init__.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/upgrade/post/test_publish.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/upgrade/pre/__init__.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python/tests/upgrade/pre/test_publish.py +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python.egg-info/dependency_links.txt +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/pulp_python.egg-info/top_level.txt +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/setup.cfg +0 -0
- {pulp-python-3.10.0 → pulp_python-3.10.2}/unittest_requirements.txt +0 -0
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
[//]: # (You should *NOT* be adding new change log entries to this file, this)
|
|
4
|
+
[//]: # (file is managed by towncrier. You *may* edit previous change logs to)
|
|
5
|
+
[//]: # (fix problems like typo corrections or such.)
|
|
6
|
+
[//]: # (To add a new change log entry, please see the contributing docs.)
|
|
7
|
+
[//]: # (WARNING: Don't drop the towncrier directive!)
|
|
8
|
+
|
|
9
|
+
[//]: # (towncrier release notes start)
|
|
10
|
+
|
|
11
|
+
## 3.10.1 (2025-07-23) {: #3.10.1 }
|
|
12
|
+
|
|
13
|
+
### Bugfixes
|
|
14
|
+
|
|
15
|
+
- Fixed tls_validation not being disabled when set to false on the remote.
|
|
16
|
+
[#653](https://github.com/pulp/pulp_python/issues/653)
|
|
17
|
+
- Fixed uploads not supporting packages using metadata spec 2.3
|
|
18
|
+
[#682](https://github.com/pulp/pulp_python/issues/682)
|
|
19
|
+
- Fixed the `package_types` filter breaking other remote filters.
|
|
20
|
+
[#691](https://github.com/pulp/pulp_python/issues/691)
|
|
21
|
+
- Fixed package name normalization issue preventing syncing packages with "." or "_" in their names.
|
|
22
|
+
[#716](https://github.com/pulp/pulp_python/issues/716)
|
|
23
|
+
- Fixed the JSONField specification so it doesn't break ruby bindings.
|
|
24
|
+
See context [here](https://github.com/pulp/pulp_rpm/issues/3639).
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 3.10.0 (2023-05-17) {: #3.10.0 }
|
|
29
|
+
|
|
30
|
+
### Features
|
|
31
|
+
|
|
32
|
+
- Added compatibility for pulpcore 3.25, pulpcore support is now >=3.25,<3.40.
|
|
33
|
+
[#605](https://github.com/pulp/pulp_python/issues/605)
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 3.9.0 (2023-03-17) {: #3.9.0 }
|
|
38
|
+
|
|
39
|
+
### Features
|
|
40
|
+
|
|
41
|
+
- Added version filter to package list endpoint.
|
|
42
|
+
[#577](https://github.com/pulp/pulp_python/issues/577)
|
|
43
|
+
- Allow duplicate uploads to return existing packages instead of erring.
|
|
44
|
+
[#590](https://github.com/pulp/pulp_python/issues/590)
|
|
45
|
+
|
|
46
|
+
### Bugfixes
|
|
47
|
+
|
|
48
|
+
- Fixed pull-through caching ignoring remote proxy settings.
|
|
49
|
+
[#553](https://github.com/pulp/pulp_python/issues/553)
|
|
50
|
+
- Changed includes and excludes openapi schema to report as array of strings instead of object.
|
|
51
|
+
[#576](https://github.com/pulp/pulp_python/issues/576)
|
|
52
|
+
- Fixed syncing ignoring remote proxy.
|
|
53
|
+
[#581](https://github.com/pulp/pulp_python/issues/581)
|
|
54
|
+
- Fixed duplicate operationID for generated PyPI simple endpoints schema.
|
|
55
|
+
[#594](https://github.com/pulp/pulp_python/issues/594)
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 3.8.0 (2022-12-19) {: #3.8.0 }
|
|
60
|
+
|
|
61
|
+
### Bugfixes
|
|
62
|
+
|
|
63
|
+
- Fixed syncing failing when using bandersnatch 5.3.0
|
|
64
|
+
[#554](https://github.com/pulp/pulp_python/issues/554)
|
|
65
|
+
- Prevent .netrc file from being read on syncs.
|
|
66
|
+
[#566](https://github.com/pulp/pulp_python/issues/566)
|
|
67
|
+
- Fix 500 error when pip installing using object storage.
|
|
68
|
+
[#572](https://github.com/pulp/pulp_python/issues/572)
|
|
69
|
+
|
|
70
|
+
### Improved Documentation
|
|
71
|
+
|
|
72
|
+
- Documented `pulp_python` specific settings.
|
|
73
|
+
[#571](https://github.com/pulp/pulp_python/issues/571)
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 3.7.3 (2022-10-06) {: #3.7.3 }
|
|
78
|
+
|
|
79
|
+
### Bugfixes
|
|
80
|
+
|
|
81
|
+
- Prevent .netrc file from being read on syncs.
|
|
82
|
+
[#566](https://github.com/pulp/pulp_python/issues/566)
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 3.7.2 (2022-08-04) {: #3.7.2 }
|
|
87
|
+
|
|
88
|
+
### Bugfixes
|
|
89
|
+
|
|
90
|
+
- Fixed syncing failing when using bandersnatch 5.3.0
|
|
91
|
+
[#554](https://github.com/pulp/pulp_python/issues/554)
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 3.7.1 (2022-06-29) {: #3.7.1 }
|
|
96
|
+
|
|
97
|
+
No significant changes.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 3.7.0 (2022-06-22) {: #3.7.0 }
|
|
102
|
+
|
|
103
|
+
### Features
|
|
104
|
+
|
|
105
|
+
- Added ability to fully sync repositories that don't support the PyPI XMLRPC endpoints. Full Pulp-to-Pulp syncing is now available.
|
|
106
|
+
[#462](https://github.com/pulp/pulp_python/issues/462)
|
|
107
|
+
|
|
108
|
+
### Bugfixes
|
|
109
|
+
|
|
110
|
+
- Ensured temporary package uploads are written to worker's directory instead of /tmp.
|
|
111
|
+
[#505](https://github.com/pulp/pulp_python/issues/505)
|
|
112
|
+
|
|
113
|
+
### Misc
|
|
114
|
+
|
|
115
|
+
- [#503](https://github.com/pulp/pulp_python/issues/503)
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 3.6.1 (2022-08-19) {: #3.6.1 }
|
|
120
|
+
|
|
121
|
+
### Bugfixes
|
|
122
|
+
|
|
123
|
+
- Fixed syncing failing when using bandersnatch 5.3.0
|
|
124
|
+
[#554](https://github.com/pulp/pulp_python/issues/554)
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 3.6.0 (2021-12-15) {: #3.6.0 }
|
|
129
|
+
|
|
130
|
+
### Features
|
|
131
|
+
|
|
132
|
+
- `pulp_python` now supports pull-through caching. Add a remote to a distribution to enable this feature.
|
|
133
|
+
[#381](https://github.com/pulp/pulp_python/issues/381)
|
|
134
|
+
- Enable Azure support
|
|
135
|
+
[#458](https://github.com/pulp/pulp_python/issues/458)
|
|
136
|
+
|
|
137
|
+
### Bugfixes
|
|
138
|
+
|
|
139
|
+
- Fixed proxy url not being passed during sync
|
|
140
|
+
[#433](https://github.com/pulp/pulp_python/issues/433)
|
|
141
|
+
- Changed the use of `dispatch` to match the signature from pulpcore>=3.15.
|
|
142
|
+
[#443](https://github.com/pulp/pulp_python/issues/443)
|
|
143
|
+
- Fixed package name normalization issue preventing installing packages with "." or "_" in their names.
|
|
144
|
+
[#467](https://github.com/pulp/pulp_python/issues/467)
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 3.5.2 (2021-10-05) {: #3.5.2 }
|
|
149
|
+
|
|
150
|
+
### Bugfixes
|
|
151
|
+
|
|
152
|
+
- Fixed proxy url not being passed during sync
|
|
153
|
+
(backported from #445)
|
|
154
|
+
[#436](https://github.com/pulp/pulp_python/issues/436)
|
|
155
|
+
- Changed the use of `dispatch` to match the signature from pulpcore>=3.15.
|
|
156
|
+
(backported from #443)
|
|
157
|
+
[#446](https://github.com/pulp/pulp_python/issues/446)
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 3.5.1 (2021-09-10) {: #3.5.1 }
|
|
162
|
+
|
|
163
|
+
### Bugfixes
|
|
164
|
+
|
|
165
|
+
- Fixed proxy url not being passed during sync
|
|
166
|
+
(backported from #433)
|
|
167
|
+
[#436](https://github.com/pulp/pulp_python/issues/436)
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## 3.5.0 (2021-08-30) {: #3.5.0 }
|
|
172
|
+
|
|
173
|
+
### Features
|
|
174
|
+
|
|
175
|
+
- Python package content can now be filtered by their sha256
|
|
176
|
+
[#404](https://github.com/pulp/pulp_python/issues/404)
|
|
177
|
+
- Added new setting `PYPI_API_HOSTNAME` that is used to form a distribution's `base_url`. Defaults to the machine's FQDN.
|
|
178
|
+
[#412](https://github.com/pulp/pulp_python/issues/412)
|
|
179
|
+
- Enabled reclaim disk feature provided by pulpcore 3.15+.
|
|
180
|
+
[#425](https://github.com/pulp/pulp_python/issues/425)
|
|
181
|
+
|
|
182
|
+
### Bugfixes
|
|
183
|
+
|
|
184
|
+
- Fixed twine upload failing when using remote storage backends
|
|
185
|
+
[#400](https://github.com/pulp/pulp_python/issues/400)
|
|
186
|
+
- Fixed improper metadata serving when using publications with S3 storage
|
|
187
|
+
[#413](https://github.com/pulp/pulp_python/issues/413)
|
|
188
|
+
|
|
189
|
+
### Deprecations and Removals
|
|
190
|
+
|
|
191
|
+
- Dropped support for Python < 3.8.
|
|
192
|
+
[#402](https://github.com/pulp/pulp_python/issues/402)
|
|
193
|
+
|
|
194
|
+
### Misc
|
|
195
|
+
|
|
196
|
+
- [#408](https://github.com/pulp/pulp_python/issues/408), [#427](https://github.com/pulp/pulp_python/issues/427)
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## 3.4.1 (2021-08-24) {: #3.4.1 }
|
|
201
|
+
|
|
202
|
+
### Features
|
|
203
|
+
|
|
204
|
+
- Python package content can now be filtered by their sha256
|
|
205
|
+
(backported from #404)
|
|
206
|
+
[#419](https://github.com/pulp/pulp_python/issues/419)
|
|
207
|
+
|
|
208
|
+
### Bugfixes
|
|
209
|
+
|
|
210
|
+
- Fixed improper metadata serving when using publications with S3 storage
|
|
211
|
+
(backported from #413)
|
|
212
|
+
[#418](https://github.com/pulp/pulp_python/issues/418)
|
|
213
|
+
- Fixed twine upload failing when using remote storage backends
|
|
214
|
+
(backported from #400)
|
|
215
|
+
[#420](https://github.com/pulp/pulp_python/issues/420)
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## 3.4.0 (2021-06-17) {: #3.4.0 }
|
|
220
|
+
|
|
221
|
+
### Features
|
|
222
|
+
|
|
223
|
+
- Added `twine` (and other similar Python tools) package upload support
|
|
224
|
+
[#342](https://github.com/pulp/pulp_python/issues/342)
|
|
225
|
+
- PyPI endpoints are now available at `/pypi/{base_path}/`
|
|
226
|
+
[#376](https://github.com/pulp/pulp_python/issues/376)
|
|
227
|
+
- Changed the global uniqueness constraint for `PythonPackageContent` to its sha256 digest
|
|
228
|
+
[#380](https://github.com/pulp/pulp_python/issues/380)
|
|
229
|
+
|
|
230
|
+
### Bugfixes
|
|
231
|
+
|
|
232
|
+
- Added missing fields to PyPI live JSON API to be compliant with core metadata version 2.1
|
|
233
|
+
[#352](https://github.com/pulp/pulp_python/issues/352)
|
|
234
|
+
- Fixed sync to use default concurrency (10) when download_concurrency was not specified
|
|
235
|
+
[#391](https://github.com/pulp/pulp_python/issues/391)
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## 3.3.0 (2021-05-27) {: #3.3.0 }
|
|
240
|
+
|
|
241
|
+
### Features
|
|
242
|
+
|
|
243
|
+
- Add support for automatic publishing and distributing.
|
|
244
|
+
[#365](https://github.com/pulp/pulp_python/issues/365)
|
|
245
|
+
|
|
246
|
+
### Bugfixes
|
|
247
|
+
|
|
248
|
+
- Fixed publications publishing more content than was in the repository
|
|
249
|
+
[#362](https://github.com/pulp/pulp_python/issues/362)
|
|
250
|
+
|
|
251
|
+
### Improved Documentation
|
|
252
|
+
|
|
253
|
+
- Update syntax in doc for cli repository content add command
|
|
254
|
+
[#368](https://github.com/pulp/pulp_python/issues/368)
|
|
255
|
+
|
|
256
|
+
### Misc
|
|
257
|
+
|
|
258
|
+
- [#347](https://github.com/pulp/pulp_python/issues/347), [#360](https://github.com/pulp/pulp_python/issues/360), [#371](https://github.com/pulp/pulp_python/issues/371)
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## 3.2.0 (2021-04-14) {: #3.2.0 }
|
|
263
|
+
|
|
264
|
+
### Features
|
|
265
|
+
|
|
266
|
+
- Added new sync filter keep_latest_packages to specify how many latest versions of packages to sync
|
|
267
|
+
[#339](https://github.com/pulp/pulp_python/issues/339)
|
|
268
|
+
- Added new sync filters package_types and exclude_platforms to specify package types to sync
|
|
269
|
+
[#341](https://github.com/pulp/pulp_python/issues/341)
|
|
270
|
+
|
|
271
|
+
### Misc
|
|
272
|
+
|
|
273
|
+
- [#354](https://github.com/pulp/pulp_python/issues/354)
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## 3.1.0 (2021-03-12) {: #3.1.0 }
|
|
278
|
+
|
|
279
|
+
### Features
|
|
280
|
+
|
|
281
|
+
- Python content can now be filtered by requires_python
|
|
282
|
+
[#3629](https://pulp.plan.io/issues/3629)
|
|
283
|
+
|
|
284
|
+
### Improved Documentation
|
|
285
|
+
|
|
286
|
+
- Updated workflows to use Pulp CLI commands
|
|
287
|
+
[#8364](https://pulp.plan.io/issues/8364)
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## 3.0.0 (2021-01-12) {: #3.0.0 }
|
|
292
|
+
|
|
293
|
+
### Bugfixes
|
|
294
|
+
|
|
295
|
+
- Remote proxy settings are now passed to Bandersnatch while syncing
|
|
296
|
+
[#7864](https://pulp.plan.io/issues/7864)
|
|
297
|
+
|
|
298
|
+
### Improved Documentation
|
|
299
|
+
|
|
300
|
+
- Added bullet list of Python Plugin features and a tech preview page for new experimental features
|
|
301
|
+
[#7628](https://pulp.plan.io/issues/7628)
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## 3.0.0b12 (2020-11-05)
|
|
306
|
+
|
|
307
|
+
### Features
|
|
308
|
+
|
|
309
|
+
- Pulp Python can now fully mirror all packages from PyPi
|
|
310
|
+
[#985](https://pulp.plan.io/issues/985)
|
|
311
|
+
- Implemented PyPi's json API at content endpoint '/pypi/{package-name}/json'. Pulp can now perform basic syncing on other Pulp Python instances.
|
|
312
|
+
[#2886](https://pulp.plan.io/issues/2886)
|
|
313
|
+
- Pulp Python now uses Bandersnatch to perform syncing and filtering of package metadata
|
|
314
|
+
[#6930](https://pulp.plan.io/issues/6930)
|
|
315
|
+
|
|
316
|
+
### Bugfixes
|
|
317
|
+
|
|
318
|
+
- Sync now includes python package's classifiers in the content unit
|
|
319
|
+
[#3627](https://pulp.plan.io/issues/3627)
|
|
320
|
+
- Policy can now be specified when creating a remote from a Bandersnatch config
|
|
321
|
+
[#7331](https://pulp.plan.io/issues/7331)
|
|
322
|
+
- Includes/excludes/prereleases fields are now properly set in a remote from Bandersnatch config
|
|
323
|
+
[#7392](https://pulp.plan.io/issues/7392)
|
|
324
|
+
|
|
325
|
+
### Improved Documentation
|
|
326
|
+
|
|
327
|
+
- Fixed makemigrations commands in the install docs
|
|
328
|
+
[#5386](https://pulp.plan.io/issues/5386)
|
|
329
|
+
|
|
330
|
+
### Misc
|
|
331
|
+
|
|
332
|
+
- [#6875](https://pulp.plan.io/issues/6875), [#7401](https://pulp.plan.io/issues/7401)
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## 3.0.0b11 (2020-08-18)
|
|
337
|
+
|
|
338
|
+
Compatibility update for pulpcore 3.6
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## 3.0.0b10 (2020-08-05)
|
|
343
|
+
|
|
344
|
+
### Features
|
|
345
|
+
|
|
346
|
+
- Added a new endpoint to remotes "/from_bandersnatch" that allows for Python remote creation from a Bandersnatch config file.
|
|
347
|
+
[#6929](https://pulp.plan.io/issues/6929)
|
|
348
|
+
|
|
349
|
+
### Bugfixes
|
|
350
|
+
|
|
351
|
+
- Including requirements.txt on MANIFEST.in
|
|
352
|
+
[#6891](https://pulp.plan.io/issues/6891)
|
|
353
|
+
- Updating API to not return publications that aren't complete.
|
|
354
|
+
[#6987](https://pulp.plan.io/issues/6987)
|
|
355
|
+
- Fixed an issue that prevented 'on_demand' content from being published.
|
|
356
|
+
[#7128](https://pulp.plan.io/issues/7128)
|
|
357
|
+
|
|
358
|
+
### Improved Documentation
|
|
359
|
+
|
|
360
|
+
- Change the commands for publication and distribution on the publish workflow to use their respective scripts already defined in _scripts.
|
|
361
|
+
[#6877](https://pulp.plan.io/issues/6877)
|
|
362
|
+
- Updated sync.sh, publication.sh and distribution.sh in docs/_scripts to reference wait_until_task_finished function from base.sh
|
|
363
|
+
[#6918](https://pulp.plan.io/issues/6918)
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## 3.0.0b9 (2020-06-01)
|
|
368
|
+
|
|
369
|
+
### Features
|
|
370
|
+
|
|
371
|
+
- Add upload functionality to the python contents endpoints.
|
|
372
|
+
[#5464](https://pulp.plan.io/issues/5464)
|
|
373
|
+
|
|
374
|
+
### Bugfixes
|
|
375
|
+
|
|
376
|
+
- Fixed the 500 error returned by the OpenAPI schema endpoint.
|
|
377
|
+
[#5452](https://pulp.plan.io/issues/5452)
|
|
378
|
+
|
|
379
|
+
### Improved Documentation
|
|
380
|
+
|
|
381
|
+
- Change the prefix of Pulp services from pulp-* to pulpcore-*
|
|
382
|
+
[#4554](https://pulp.plan.io/issues/4554)
|
|
383
|
+
- Added "python/python/" to fix two commands in repo.sh, fixed export command in sync.sh
|
|
384
|
+
[#6790](https://pulp.plan.io/issues/6790)
|
|
385
|
+
- Added "index.html" to the relative_path field for both project_metadata and index_metadata. Added a "/" to fix the link in the simple_index_template.
|
|
386
|
+
[#6792](https://pulp.plan.io/issues/6792)
|
|
387
|
+
- Updated the workflow documentation for upload.html. Fixed the workflow commands and added more details to the instructions.
|
|
388
|
+
[#6854](https://pulp.plan.io/issues/6854)
|
|
389
|
+
|
|
390
|
+
### Deprecations and Removals
|
|
391
|
+
|
|
392
|
+
- Change _id, _created, _last_updated, _href to pulp_id, pulp_created, pulp_last_updated, pulp_href
|
|
393
|
+
[#5457](https://pulp.plan.io/issues/5457)
|
|
394
|
+
|
|
395
|
+
- Remove "_" from _versions_href, _latest_version_href
|
|
396
|
+
[#5548](https://pulp.plan.io/issues/5548)
|
|
397
|
+
|
|
398
|
+
- Removing base field: _type .
|
|
399
|
+
[#5550](https://pulp.plan.io/issues/5550)
|
|
400
|
+
|
|
401
|
+
- Sync is no longer available at the {remote_href}/sync/ repository={repo_href} endpoint. Instead, use POST {repo_href}/sync/ remote={remote_href}.
|
|
402
|
+
|
|
403
|
+
Creating / listing / editing / deleting python repositories is now performed on /pulp/api/v3/python/python/ instead of /pulp/api/v3/repositories/. Only python content can be present in a python repository, and only a python repository can hold python content.
|
|
404
|
+
[#5625](https://pulp.plan.io/issues/5625)
|
|
405
|
+
|
|
406
|
+
### Misc
|
|
407
|
+
|
|
408
|
+
- [#remotetests](https://pulp.plan.io/issues/remotetests), [#4681](https://pulp.plan.io/issues/4681), [#4682](https://pulp.plan.io/issues/4682), [#5304](https://pulp.plan.io/issues/5304), [#5471](https://pulp.plan.io/issues/5471), [#5580](https://pulp.plan.io/issues/5580), [#5701](https://pulp.plan.io/issues/5701)
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
## 3.0.0b8 (2019-09-16)
|
|
413
|
+
|
|
414
|
+
### Misc
|
|
415
|
+
|
|
416
|
+
- [#4681](https://pulp.plan.io/issues/4681)
|
|
417
|
+
|
|
418
|
+
---
|
|
419
|
+
|
|
420
|
+
## 3.0.0b7 (2019-08-01)
|
|
421
|
+
|
|
422
|
+
### Features
|
|
423
|
+
|
|
424
|
+
- Users can upload a file to create content and optionally add to a repo in one step known as
|
|
425
|
+
one-shot upload
|
|
426
|
+
[#4396](https://pulp.plan.io/issues/4396)
|
|
427
|
+
- Override the Remote's serializer to allow policy='on_demand' and policy='streamed'.
|
|
428
|
+
[#4990](https://pulp.plan.io/issues/4990)
|
|
429
|
+
|
|
430
|
+
### Improved Documentation
|
|
431
|
+
|
|
432
|
+
- Switch to using [towncrier](https://github.com/hawkowl/towncrier) for better release notes.
|
|
433
|
+
[#4875](https://pulp.plan.io/issues/4875)
|
|
434
|
+
|
|
435
|
+
---
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
include LICENSE
|
|
2
2
|
include requirements.txt
|
|
3
3
|
include pyproject.toml
|
|
4
|
-
include CHANGES.
|
|
4
|
+
include CHANGES.md
|
|
5
5
|
include COMMITMENT
|
|
6
6
|
include COPYRIGHT
|
|
7
7
|
include functest_requirements.txt
|
|
8
8
|
include test_requirements.txt
|
|
9
9
|
include unittest_requirements.txt
|
|
10
10
|
include pulp_python/app/webserver_snippets/*
|
|
11
|
+
exclude releasing.md
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pulp-python
|
|
3
|
+
Version: 3.10.2
|
|
4
|
+
Summary: pulp-python plugin for the Pulp Project
|
|
5
|
+
Home-page: https://www.pulpproject.org
|
|
6
|
+
Author: Pulp Project Developers
|
|
7
|
+
Author-email: pulp-list@redhat.com
|
|
8
|
+
License: GPLv2+
|
|
9
|
+
Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
|
|
10
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Framework :: Django
|
|
13
|
+
Classifier: Programming Language :: Python
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
17
|
+
Requires-Python: >=3.8
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: pulpcore<3.40,>=3.28.0
|
|
21
|
+
Requires-Dist: pkginfo<1.12.0,>=1.10.0
|
|
22
|
+
Requires-Dist: bandersnatch<6.2,>=6.1
|
|
23
|
+
Requires-Dist: pypi-simple<1.0.0,>=0.9.0
|
|
24
|
+
Dynamic: author
|
|
25
|
+
Dynamic: author-email
|
|
26
|
+
Dynamic: classifier
|
|
27
|
+
Dynamic: description
|
|
28
|
+
Dynamic: description-content-type
|
|
29
|
+
Dynamic: home-page
|
|
30
|
+
Dynamic: license
|
|
31
|
+
Dynamic: license-file
|
|
32
|
+
Dynamic: requires-dist
|
|
33
|
+
Dynamic: requires-python
|
|
34
|
+
Dynamic: summary
|
|
35
|
+
|
|
36
|
+
# pulp_python
|
|
37
|
+
|
|
38
|
+

|
|
39
|
+
|
|
40
|
+
A Pulp plugin to support hosting your own pip compatible Python packages.
|
|
41
|
+
|
|
42
|
+
For more information, please see the [documentation](https://docs.pulpproject.org/pulp_python/) or the
|
|
43
|
+
[Pulp project page](https://pulpproject.org).
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from drf_spectacular.utils import extend_schema_field
|
|
2
|
+
from drf_spectacular.types import OpenApiTypes
|
|
3
|
+
from rest_framework import serializers
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@extend_schema_field(OpenApiTypes.OBJECT)
|
|
7
|
+
class JSONObjectField(serializers.JSONField):
|
|
8
|
+
"""A drf JSONField override to force openapi schema to use 'object' type.
|
|
9
|
+
|
|
10
|
+
Not strictly correct, but we relied on that for a long time.
|
|
11
|
+
See: https://github.com/tfranzel/drf-spectacular/issues/1095
|
|
12
|
+
"""
|
|
@@ -16,6 +16,7 @@ from pulpcore.plugin.responses import ArtifactResponse
|
|
|
16
16
|
|
|
17
17
|
from pathlib import PurePath
|
|
18
18
|
from .utils import (
|
|
19
|
+
canonicalize_name,
|
|
19
20
|
get_project_metadata_from_artifact,
|
|
20
21
|
parse_project_metadata,
|
|
21
22
|
python_content_to_json,
|
|
@@ -84,6 +85,8 @@ class PythonDistribution(Distribution):
|
|
|
84
85
|
).latest("pulp_created")
|
|
85
86
|
except ObjectDoesNotExist:
|
|
86
87
|
return None
|
|
88
|
+
if len(path.parts) == 2:
|
|
89
|
+
path = PurePath(f"simple/{canonicalize_name(path.parts[1])}")
|
|
87
90
|
rel_path = f"{path}/index.html"
|
|
88
91
|
try:
|
|
89
92
|
ca = (
|
|
@@ -100,8 +103,9 @@ class PythonDistribution(Distribution):
|
|
|
100
103
|
return ArtifactResponse(ca.artifact, headers=headers)
|
|
101
104
|
|
|
102
105
|
if name:
|
|
106
|
+
normalized = canonicalize_name(name)
|
|
103
107
|
package_content = PythonPackageContent.objects.filter(
|
|
104
|
-
pk__in=self.publication.repository_version.content,
|
|
108
|
+
pk__in=self.publication.repository_version.content, name__normalize=normalized
|
|
105
109
|
)
|
|
106
110
|
# TODO Change this value to the Repo's serial value when implemented
|
|
107
111
|
headers = {PYPI_LAST_SERIAL: str(PYPI_SERIAL_CONSTANT)}
|
|
@@ -3,6 +3,7 @@ from gettext import gettext as _
|
|
|
3
3
|
|
|
4
4
|
from rest_framework import serializers
|
|
5
5
|
from pulp_python.app.utils import DIST_EXTENSIONS
|
|
6
|
+
from pulp_python.app import fields
|
|
6
7
|
from pulpcore.plugin.models import Artifact
|
|
7
8
|
from django.db.utils import IntegrityError
|
|
8
9
|
|
|
@@ -27,9 +28,9 @@ class PackageMetadataSerializer(serializers.Serializer):
|
|
|
27
28
|
"""
|
|
28
29
|
|
|
29
30
|
last_serial = serializers.IntegerField(help_text=_("Cache value from last PyPI sync"))
|
|
30
|
-
info =
|
|
31
|
-
releases =
|
|
32
|
-
urls =
|
|
31
|
+
info = fields.JSONObjectField(help_text=_("Core metadata of the package"))
|
|
32
|
+
releases = fields.JSONObjectField(help_text=_("List of all the releases of the package"))
|
|
33
|
+
urls = fields.JSONObjectField()
|
|
33
34
|
|
|
34
35
|
|
|
35
36
|
class PackageUploadSerializer(serializers.Serializer):
|
|
@@ -278,7 +278,8 @@ class MetadataView(ViewSet, PyPIMixin):
|
|
|
278
278
|
elif meta_path.match("*/json"):
|
|
279
279
|
name = meta_path.parts[0]
|
|
280
280
|
if name:
|
|
281
|
-
|
|
281
|
+
normalized = canonicalize_name(name)
|
|
282
|
+
package_content = content.filter(name__normalize=normalized)
|
|
282
283
|
# TODO Change this value to the Repo's serial value when implemented
|
|
283
284
|
headers = {PYPI_LAST_SERIAL: str(PYPI_SERIAL_CONSTANT)}
|
|
284
285
|
json_body = python_content_to_json(path, package_content, version=version)
|
|
@@ -7,6 +7,7 @@ from pulpcore.plugin import models as core_models
|
|
|
7
7
|
from pulpcore.plugin import serializers as core_serializers
|
|
8
8
|
|
|
9
9
|
from pulp_python.app import models as python_models
|
|
10
|
+
from pulp_python.app import fields
|
|
10
11
|
from pulp_python.app.utils import get_project_metadata_from_artifact, parse_project_metadata
|
|
11
12
|
|
|
12
13
|
|
|
@@ -154,7 +155,7 @@ class PythonPackageContentSerializer(core_serializers.SingleArtifactContentUploa
|
|
|
154
155
|
required=False, allow_blank=True,
|
|
155
156
|
help_text=_('A browsable URL for the project and a label for it, separated by a comma.')
|
|
156
157
|
)
|
|
157
|
-
project_urls =
|
|
158
|
+
project_urls = fields.JSONObjectField(
|
|
158
159
|
required=False, default=dict,
|
|
159
160
|
help_text=_('A dictionary of labels and URLs for the project.')
|
|
160
161
|
)
|
|
@@ -167,28 +168,28 @@ class PythonPackageContentSerializer(core_serializers.SingleArtifactContentUploa
|
|
|
167
168
|
required=False, allow_blank=True,
|
|
168
169
|
help_text=_('Field to specify the OS and CPU for which the binary package was compiled. ')
|
|
169
170
|
)
|
|
170
|
-
requires_dist =
|
|
171
|
+
requires_dist = fields.JSONObjectField(
|
|
171
172
|
required=False, default=list,
|
|
172
173
|
help_text=_('A JSON list containing names of some other distutils project '
|
|
173
174
|
'required by this distribution.')
|
|
174
175
|
)
|
|
175
|
-
provides_dist =
|
|
176
|
+
provides_dist = fields.JSONObjectField(
|
|
176
177
|
required=False, default=list,
|
|
177
178
|
help_text=_('A JSON list containing names of a Distutils project which is contained'
|
|
178
179
|
' within this distribution.')
|
|
179
180
|
)
|
|
180
|
-
obsoletes_dist =
|
|
181
|
+
obsoletes_dist = fields.JSONObjectField(
|
|
181
182
|
required=False, default=list,
|
|
182
183
|
help_text=_('A JSON list containing names of a distutils project\'s distribution which '
|
|
183
184
|
'this distribution renders obsolete, meaning that the two projects should not '
|
|
184
185
|
'be installed at the same time.')
|
|
185
186
|
)
|
|
186
|
-
requires_external =
|
|
187
|
+
requires_external = fields.JSONObjectField(
|
|
187
188
|
required=False, default=list,
|
|
188
189
|
help_text=_('A JSON list containing some dependency in the system that the distribution '
|
|
189
190
|
'is to be used.')
|
|
190
191
|
)
|
|
191
|
-
classifiers =
|
|
192
|
+
classifiers = fields.JSONObjectField(
|
|
192
193
|
required=False, default=list,
|
|
193
194
|
help_text=_('A JSON list containing classification values for a Python package.')
|
|
194
195
|
)
|