pulp-python 3.11.1__tar.gz → 3.11.3__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.
Files changed (76) hide show
  1. pulp-python-3.11.3/CHANGES.md +458 -0
  2. {pulp-python-3.11.1 → pulp-python-3.11.3}/MANIFEST.in +1 -1
  3. {pulp-python-3.11.1 → pulp-python-3.11.3}/PKG-INFO +1 -1
  4. {pulp-python-3.11.1 → pulp-python-3.11.3}/functest_requirements.txt +0 -2
  5. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/__init__.py +1 -1
  6. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/models.py +5 -1
  7. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/pypi/views.py +2 -1
  8. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/tasks/sync.py +1 -1
  9. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/api/test_crud_content_unit.py +15 -0
  10. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/api/test_download_content.py +30 -0
  11. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/api/test_sync.py +17 -0
  12. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/conftest.py +92 -0
  13. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/constants.py +1 -0
  14. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python.egg-info/PKG-INFO +1 -1
  15. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python.egg-info/SOURCES.txt +1 -1
  16. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python.egg-info/requires.txt +2 -2
  17. {pulp-python-3.11.1 → pulp-python-3.11.3}/pyproject.toml +6 -4
  18. pulp-python-3.11.3/requirements.txt +4 -0
  19. {pulp-python-3.11.1 → pulp-python-3.11.3}/setup.py +1 -1
  20. pulp-python-3.11.1/CHANGES.rst +0 -617
  21. pulp-python-3.11.1/requirements.txt +0 -4
  22. {pulp-python-3.11.1 → pulp-python-3.11.3}/COMMITMENT +0 -0
  23. {pulp-python-3.11.1 → pulp-python-3.11.3}/COPYRIGHT +0 -0
  24. {pulp-python-3.11.1 → pulp-python-3.11.3}/LICENSE +0 -0
  25. {pulp-python-3.11.1 → pulp-python-3.11.3}/README.md +0 -0
  26. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/__init__.py +0 -0
  27. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/migrations/0001_initial.py +0 -0
  28. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/migrations/0002_pythonpackagecontent_python_version.py +0 -0
  29. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/migrations/0003_new_sync_filters.py +0 -0
  30. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/migrations/0004_DATA_swap_distribution_model.py +0 -0
  31. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/migrations/0005_pythonpackagecontent_sha256.py +0 -0
  32. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/migrations/0006_pythonrepository_autopublish.py +0 -0
  33. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/migrations/0007_pythonpackagecontent_mv-2-1.py +0 -0
  34. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/migrations/0008_pythonpackagecontent_unique_sha256.py +0 -0
  35. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/migrations/0009_pythondistribution_allow_uploads.py +0 -0
  36. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/migrations/0010_update_json_field.py +0 -0
  37. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/migrations/0011_alter_pythondistribution_distribution_ptr_and_more.py +0 -0
  38. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/migrations/__init__.py +0 -0
  39. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/modelresource.py +0 -0
  40. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/pypi/__init__.py +0 -0
  41. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/pypi/serializers.py +0 -0
  42. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/serializers.py +0 -0
  43. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/settings.py +0 -0
  44. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/tasks/__init__.py +0 -0
  45. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/tasks/publish.py +0 -0
  46. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/tasks/upload.py +0 -0
  47. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/urls.py +0 -0
  48. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/utils.py +0 -0
  49. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/viewsets.py +0 -0
  50. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/webserver_snippets/__init__.py +0 -0
  51. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/webserver_snippets/apache.conf +0 -0
  52. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/app/webserver_snippets/nginx.conf +0 -0
  53. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/__init__.py +0 -0
  54. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/__init__.py +0 -0
  55. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/api/__init__.py +0 -0
  56. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/api/test_auto_publish.py +0 -0
  57. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/api/test_consume_content.py +0 -0
  58. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/api/test_crud_publications.py +0 -0
  59. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/api/test_crud_remotes.py +0 -0
  60. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/api/test_export_import.py +0 -0
  61. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/api/test_full_mirror.py +0 -0
  62. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/api/test_pypi_apis.py +0 -0
  63. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/functional/utils.py +0 -0
  64. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/unit/__init__.py +0 -0
  65. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/unit/test_models.py +0 -0
  66. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/upgrade/__init__.py +0 -0
  67. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/upgrade/post/__init__.py +0 -0
  68. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/upgrade/post/test_publish.py +0 -0
  69. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/upgrade/pre/__init__.py +0 -0
  70. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python/tests/upgrade/pre/test_publish.py +0 -0
  71. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python.egg-info/dependency_links.txt +0 -0
  72. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python.egg-info/entry_points.txt +0 -0
  73. {pulp-python-3.11.1 → pulp-python-3.11.3}/pulp_python.egg-info/top_level.txt +0 -0
  74. {pulp-python-3.11.1 → pulp-python-3.11.3}/setup.cfg +0 -0
  75. {pulp-python-3.11.1 → pulp-python-3.11.3}/test_requirements.txt +0 -0
  76. {pulp-python-3.11.1 → pulp-python-3.11.3}/unittest_requirements.txt +0 -0
@@ -0,0 +1,458 @@
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.11.3 (2024-08-21) {: #3.11.3 }
12
+
13
+ #### Bugfixes {: #3.11.3-bugfix }
14
+
15
+ - Fixed uploads not supporting packages using metadata spec 2.3
16
+ [#682](https://github.com/pulp/pulp_python/issues/682)
17
+ - Fixed package name normalization issue preventing syncing packages with "." or "_" in their names.
18
+ [#716](https://github.com/pulp/pulp_python/issues/716)
19
+
20
+ ---
21
+
22
+ ## 3.11.2 (2024-06-27) {: #3.11.2 }
23
+
24
+
25
+ #### Bugfixes {: #3.11.2-bugfix }
26
+
27
+ - Fixed the `package_types` filter breaking other remote filters.
28
+ [#691](https://github.com/pulp/pulp_python/issues/691)
29
+
30
+ ---
31
+
32
+ ## 3.11.1 (2024-04-11) {: #3.11.1 }
33
+
34
+ ### Bugfixes
35
+
36
+ - Fixed tls_validation not being disabled when set to false on the remote.
37
+ [#653](https://github.com/pulp/pulp_python/issues/653)
38
+
39
+ ---
40
+
41
+ ## 3.11.0 (2023-11-08) {: #3.11.0 }
42
+
43
+ ### Features
44
+
45
+ - Added pulpcore 3.40 compatibility.
46
+ - Added import export support of python content.
47
+ [#579](https://github.com/pulp/pulp_python/issues/579)
48
+
49
+ ---
50
+
51
+ ## 3.10.0 (2023-05-17) {: #3.10.0 }
52
+
53
+ ### Features
54
+
55
+ - Added compatibility for pulpcore 3.25, pulpcore support is now >=3.25,<3.40.
56
+ [#605](https://github.com/pulp/pulp_python/issues/605)
57
+
58
+ ---
59
+
60
+ ## 3.9.0 (2023-03-17) {: #3.9.0 }
61
+
62
+ ### Features
63
+
64
+ - Added version filter to package list endpoint.
65
+ [#577](https://github.com/pulp/pulp_python/issues/577)
66
+ - Allow duplicate uploads to return existing packages instead of erring.
67
+ [#590](https://github.com/pulp/pulp_python/issues/590)
68
+
69
+ ### Bugfixes
70
+
71
+ - Fixed pull-through caching ignoring remote proxy settings.
72
+ [#553](https://github.com/pulp/pulp_python/issues/553)
73
+ - Changed includes and excludes openapi schema to report as array of strings instead of object.
74
+ [#576](https://github.com/pulp/pulp_python/issues/576)
75
+ - Fixed syncing ignoring remote proxy.
76
+ [#581](https://github.com/pulp/pulp_python/issues/581)
77
+ - Fixed duplicate operationID for generated PyPI simple endpoints schema.
78
+ [#594](https://github.com/pulp/pulp_python/issues/594)
79
+
80
+ ---
81
+
82
+ ## 3.8.0 (2022-12-19) {: #3.8.0 }
83
+
84
+ ### Bugfixes
85
+
86
+ - Fixed syncing failing when using bandersnatch 5.3.0
87
+ [#554](https://github.com/pulp/pulp_python/issues/554)
88
+ - Prevent .netrc file from being read on syncs.
89
+ [#566](https://github.com/pulp/pulp_python/issues/566)
90
+ - Fix 500 error when pip installing using object storage.
91
+ [#572](https://github.com/pulp/pulp_python/issues/572)
92
+
93
+ ### Improved Documentation
94
+
95
+ - Documented `pulp_python` specific settings.
96
+ [#571](https://github.com/pulp/pulp_python/issues/571)
97
+
98
+ ---
99
+
100
+ ## 3.7.3 (2022-10-06) {: #3.7.3 }
101
+
102
+ ### Bugfixes
103
+
104
+ - Prevent .netrc file from being read on syncs.
105
+ [#566](https://github.com/pulp/pulp_python/issues/566)
106
+
107
+ ---
108
+
109
+ ## 3.7.2 (2022-08-04) {: #3.7.2 }
110
+
111
+ ### Bugfixes
112
+
113
+ - Fixed syncing failing when using bandersnatch 5.3.0
114
+ [#554](https://github.com/pulp/pulp_python/issues/554)
115
+
116
+ ---
117
+
118
+ ## 3.7.1 (2022-06-29) {: #3.7.1 }
119
+
120
+ No significant changes.
121
+
122
+ ---
123
+
124
+ ## 3.7.0 (2022-06-22) {: #3.7.0 }
125
+
126
+ ### Features
127
+
128
+ - Added ability to fully sync repositories that don't support the PyPI XMLRPC endpoints. Full Pulp-to-Pulp syncing is now available.
129
+ [#462](https://github.com/pulp/pulp_python/issues/462)
130
+
131
+ ### Bugfixes
132
+
133
+ - Ensured temporary package uploads are written to worker's directory instead of /tmp.
134
+ [#505](https://github.com/pulp/pulp_python/issues/505)
135
+
136
+ ### Misc
137
+
138
+ - [#503](https://github.com/pulp/pulp_python/issues/503)
139
+
140
+ ---
141
+
142
+ ## 3.6.1 (2022-08-19) {: #3.6.1 }
143
+
144
+ ### Bugfixes
145
+
146
+ - Fixed syncing failing when using bandersnatch 5.3.0
147
+ [#554](https://github.com/pulp/pulp_python/issues/554)
148
+
149
+ ---
150
+
151
+ ## 3.6.0 (2021-12-15) {: #3.6.0 }
152
+
153
+ ### Features
154
+
155
+ - `pulp_python` now supports pull-through caching. Add a remote to a distribution to enable this feature.
156
+ [#381](https://github.com/pulp/pulp_python/issues/381)
157
+ - Enable Azure support
158
+ [#458](https://github.com/pulp/pulp_python/issues/458)
159
+
160
+ ### Bugfixes
161
+
162
+ - Fixed proxy url not being passed during sync
163
+ [#433](https://github.com/pulp/pulp_python/issues/433)
164
+ - Changed the use of `dispatch` to match the signature from pulpcore>=3.15.
165
+ [#443](https://github.com/pulp/pulp_python/issues/443)
166
+ - Fixed package name normalization issue preventing installing packages with "." or "_" in their names.
167
+ [#467](https://github.com/pulp/pulp_python/issues/467)
168
+
169
+ ---
170
+
171
+ ## 3.5.2 (2021-10-05) {: #3.5.2 }
172
+
173
+ ### Bugfixes
174
+
175
+ - Fixed proxy url not being passed during sync
176
+ (backported from #445)
177
+ [#436](https://github.com/pulp/pulp_python/issues/436)
178
+ - Changed the use of `dispatch` to match the signature from pulpcore>=3.15.
179
+ (backported from #443)
180
+ [#446](https://github.com/pulp/pulp_python/issues/446)
181
+
182
+ ---
183
+
184
+ ## 3.5.1 (2021-09-10) {: #3.5.1 }
185
+
186
+ ### Bugfixes
187
+
188
+ - Fixed proxy url not being passed during sync
189
+ (backported from #433)
190
+ [#436](https://github.com/pulp/pulp_python/issues/436)
191
+
192
+ ---
193
+
194
+ ## 3.5.0 (2021-08-30) {: #3.5.0 }
195
+
196
+ ### Features
197
+
198
+ - Python package content can now be filtered by their sha256
199
+ [#404](https://github.com/pulp/pulp_python/issues/404)
200
+ - Added new setting `PYPI_API_HOSTNAME` that is used to form a distribution's `base_url`. Defaults to the machine's FQDN.
201
+ [#412](https://github.com/pulp/pulp_python/issues/412)
202
+ - Enabled reclaim disk feature provided by pulpcore 3.15+.
203
+ [#425](https://github.com/pulp/pulp_python/issues/425)
204
+
205
+ ### Bugfixes
206
+
207
+ - Fixed twine upload failing when using remote storage backends
208
+ [#400](https://github.com/pulp/pulp_python/issues/400)
209
+ - Fixed improper metadata serving when using publications with S3 storage
210
+ [#413](https://github.com/pulp/pulp_python/issues/413)
211
+
212
+ ### Deprecations and Removals
213
+
214
+ - Dropped support for Python < 3.8.
215
+ [#402](https://github.com/pulp/pulp_python/issues/402)
216
+
217
+ ### Misc
218
+
219
+ - [#408](https://github.com/pulp/pulp_python/issues/408), [#427](https://github.com/pulp/pulp_python/issues/427)
220
+
221
+ ---
222
+
223
+ ## 3.4.1 (2021-08-24) {: #3.4.1 }
224
+
225
+ ### Features
226
+
227
+ - Python package content can now be filtered by their sha256
228
+ (backported from #404)
229
+ [#419](https://github.com/pulp/pulp_python/issues/419)
230
+
231
+ ### Bugfixes
232
+
233
+ - Fixed improper metadata serving when using publications with S3 storage
234
+ (backported from #413)
235
+ [#418](https://github.com/pulp/pulp_python/issues/418)
236
+ - Fixed twine upload failing when using remote storage backends
237
+ (backported from #400)
238
+ [#420](https://github.com/pulp/pulp_python/issues/420)
239
+
240
+ ---
241
+
242
+ 3.4.0 (2021-06-17)
243
+
244
+ ### Features
245
+
246
+ - Added `twine` (and other similar Python tools) package upload support
247
+ [#342](https://github.com/pulp/pulp_python/issues/342)
248
+ - PyPI endpoints are now available at `/pypi/{base_path}/`
249
+ [#376](https://github.com/pulp/pulp_python/issues/376)
250
+ - Changed the global uniqueness constraint for `PythonPackageContent` to its sha256 digest
251
+ [#380](https://github.com/pulp/pulp_python/issues/380)
252
+
253
+ ### Bugfixes
254
+
255
+ - Added missing fields to PyPI live JSON API to be compliant with core metadata version 2.1
256
+ [#352](https://github.com/pulp/pulp_python/issues/352)
257
+ - Fixed sync to use default concurrency (10) when download_concurrency was not specified
258
+ [#391](https://github.com/pulp/pulp_python/issues/391)
259
+
260
+ ---
261
+
262
+ ## 3.3.0 (2021-05-27) {: #3.3.0 }
263
+
264
+ ### Features
265
+
266
+ - Add support for automatic publishing and distributing.
267
+ [#365](https://github.com/pulp/pulp_python/issues/365)
268
+
269
+ ### Bugfixes
270
+
271
+ - Fixed publications publishing more content than was in the repository
272
+ [#362](https://github.com/pulp/pulp_python/issues/362)
273
+
274
+ ### Improved Documentation
275
+
276
+ - Update syntax in doc for cli repository content add command
277
+ [#368](https://github.com/pulp/pulp_python/issues/368)
278
+
279
+ ### Misc
280
+
281
+ - [#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)
282
+
283
+ ---
284
+
285
+ ## 3.2.0 (2021-04-14) {: #3.2.0 }
286
+
287
+ ### Features
288
+
289
+ - Added new sync filter keep_latest_packages to specify how many latest versions of packages to sync
290
+ [#339](https://github.com/pulp/pulp_python/issues/339)
291
+ - Added new sync filters package_types and exclude_platforms to specify package types to sync
292
+ [#341](https://github.com/pulp/pulp_python/issues/341)
293
+
294
+ ### Misc
295
+
296
+ - [#354](https://github.com/pulp/pulp_python/issues/354)
297
+
298
+ ---
299
+
300
+ ## 3.1.0 (2021-03-12) {: #3.1.0 }
301
+
302
+ ### Features
303
+
304
+ - Python content can now be filtered by requires_python
305
+ [#3629](https://pulp.plan.io/issues/3629)
306
+
307
+ ### Improved Documentation
308
+
309
+ - Updated workflows to use Pulp CLI commands
310
+ [#8364](https://pulp.plan.io/issues/8364)
311
+
312
+ ---
313
+
314
+ ## 3.0.0 (2021-01-12) {: #3.0.0 }
315
+
316
+ ### Bugfixes
317
+
318
+ - Remote proxy settings are now passed to Bandersnatch while syncing
319
+ [#7864](https://pulp.plan.io/issues/7864)
320
+
321
+ ### Improved Documentation
322
+
323
+ - Added bullet list of Python Plugin features and a tech preview page for new experimental features
324
+ [#7628](https://pulp.plan.io/issues/7628)
325
+
326
+ ---
327
+
328
+ ## 3.0.0b12 (2020-11-05)
329
+
330
+ ### Features
331
+
332
+ - Pulp Python can now fully mirror all packages from PyPi
333
+ [#985](https://pulp.plan.io/issues/985)
334
+ - Implemented PyPi's json API at content endpoint '/pypi/{package-name}/json'. Pulp can now perform basic syncing on other Pulp Python instances.
335
+ [#2886](https://pulp.plan.io/issues/2886)
336
+ - Pulp Python now uses Bandersnatch to perform syncing and filtering of package metadata
337
+ [#6930](https://pulp.plan.io/issues/6930)
338
+
339
+ ### Bugfixes
340
+
341
+ - Sync now includes python package's classifiers in the content unit
342
+ [#3627](https://pulp.plan.io/issues/3627)
343
+ - Policy can now be specified when creating a remote from a Bandersnatch config
344
+ [#7331](https://pulp.plan.io/issues/7331)
345
+ - Includes/excludes/prereleases fields are now properly set in a remote from Bandersnatch config
346
+ [#7392](https://pulp.plan.io/issues/7392)
347
+
348
+ ### Improved Documentation
349
+
350
+ - Fixed makemigrations commands in the install docs
351
+ [#5386](https://pulp.plan.io/issues/5386)
352
+
353
+ ### Misc
354
+
355
+ - [#6875](https://pulp.plan.io/issues/6875), [#7401](https://pulp.plan.io/issues/7401)
356
+
357
+ ---
358
+
359
+ ## 3.0.0b11 (2020-08-18)
360
+
361
+ Compatibility update for pulpcore 3.6
362
+
363
+ ---
364
+
365
+ ## 3.0.0b10 (2020-08-05)
366
+
367
+ ### Features
368
+
369
+ - Added a new endpoint to remotes "/from_bandersnatch" that allows for Python remote creation from a Bandersnatch config file.
370
+ [#6929](https://pulp.plan.io/issues/6929)
371
+
372
+ ### Bugfixes
373
+
374
+ - Including requirements.txt on MANIFEST.in
375
+ [#6891](https://pulp.plan.io/issues/6891)
376
+ - Updating API to not return publications that aren't complete.
377
+ [#6987](https://pulp.plan.io/issues/6987)
378
+ - Fixed an issue that prevented 'on_demand' content from being published.
379
+ [#7128](https://pulp.plan.io/issues/7128)
380
+
381
+ ### Improved Documentation
382
+
383
+ - Change the commands for publication and distribution on the publish workflow to use their respective scripts already defined in _scripts.
384
+ [#6877](https://pulp.plan.io/issues/6877)
385
+ - Updated sync.sh, publication.sh and distribution.sh in docs/_scripts to reference wait_until_task_finished function from base.sh
386
+ [#6918](https://pulp.plan.io/issues/6918)
387
+
388
+ ---
389
+
390
+ ## 3.0.0b9 (2020-06-01)
391
+
392
+ ### Features
393
+
394
+ - Add upload functionality to the python contents endpoints.
395
+ [#5464](https://pulp.plan.io/issues/5464)
396
+
397
+ ### Bugfixes
398
+
399
+ - Fixed the 500 error returned by the OpenAPI schema endpoint.
400
+ [#5452](https://pulp.plan.io/issues/5452)
401
+
402
+ ### Improved Documentation
403
+
404
+ - Change the prefix of Pulp services from pulp-* to pulpcore-*
405
+ [#4554](https://pulp.plan.io/issues/4554)
406
+ - Added "python/python/" to fix two commands in repo.sh, fixed export command in sync.sh
407
+ [#6790](https://pulp.plan.io/issues/6790)
408
+ - 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.
409
+ [#6792](https://pulp.plan.io/issues/6792)
410
+ - Updated the workflow documentation for upload.html. Fixed the workflow commands and added more details to the instructions.
411
+ [#6854](https://pulp.plan.io/issues/6854)
412
+
413
+ ### Deprecations and Removals
414
+
415
+ - Change _id, _created, _last_updated, _href to pulp_id, pulp_created, pulp_last_updated, pulp_href
416
+ [#5457](https://pulp.plan.io/issues/5457)
417
+
418
+ - Remove "_" from _versions_href, _latest_version_href
419
+ [#5548](https://pulp.plan.io/issues/5548)
420
+
421
+ - Removing base field: _type .
422
+ [#5550](https://pulp.plan.io/issues/5550)
423
+
424
+ - Sync is no longer available at the {remote_href}/sync/ repository={repo_href} endpoint. Instead, use POST {repo_href}/sync/ remote={remote_href}.
425
+
426
+ 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.
427
+ [#5625](https://pulp.plan.io/issues/5625)
428
+
429
+ ### Misc
430
+
431
+ - [#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)
432
+
433
+ ---
434
+
435
+ ## 3.0.0b8 (2019-09-16)
436
+
437
+ ### Misc
438
+
439
+ - [#4681](https://pulp.plan.io/issues/4681)
440
+
441
+ ---
442
+
443
+ ## 3.0.0b7 (2019-08-01)
444
+
445
+ ### Features
446
+
447
+ - Users can upload a file to create content and optionally add to a repo in one step known as
448
+ one-shot upload
449
+ [#4396](https://pulp.plan.io/issues/4396)
450
+ - Override the Remote's serializer to allow policy='on_demand' and policy='streamed'.
451
+ [#4990](https://pulp.plan.io/issues/4990)
452
+
453
+ ### Improved Documentation
454
+
455
+ - Switch to using [towncrier](https://github.com/hawkowl/towncrier) for better release notes.
456
+ [#4875](https://pulp.plan.io/issues/4875)
457
+
458
+ ---
@@ -1,7 +1,7 @@
1
1
  include LICENSE
2
2
  include requirements.txt
3
3
  include pyproject.toml
4
- include CHANGES.rst
4
+ include CHANGES.md
5
5
  include COMMITMENT
6
6
  include COPYRIGHT
7
7
  include functest_requirements.txt
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pulp-python
3
- Version: 3.11.1
3
+ Version: 3.11.3
4
4
  Summary: pulp-python plugin for the Pulp Project
5
5
  Home-page: https://www.pulpproject.org
6
6
  Author: Pulp Project Developers
@@ -3,5 +3,3 @@ pytest<8
3
3
  lxml
4
4
  twine
5
5
  pypi-simple
6
- pulpcore-client
7
- pulp-python-client
@@ -8,5 +8,5 @@ class PulpPythonPluginAppConfig(PulpPluginAppConfig):
8
8
 
9
9
  name = "pulp_python.app"
10
10
  label = "python"
11
- version = "3.11.1"
11
+ version = "3.11.3"
12
12
  python_package_name = "pulp-python"
@@ -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, name__iexact=name
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)}
@@ -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
- package_content = content.filter(name__iexact=name)
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)
@@ -83,7 +83,7 @@ def create_bandersnatch_config(remote):
83
83
  config["plugins"]["enabled"] += "prerelease_release\n"
84
84
  if remote.package_types:
85
85
  rrfm = "regex_release_file_metadata"
86
- config["plugins"]["enabled"] += rrfm
86
+ config["plugins"]["enabled"] += f"{rrfm}\n"
87
87
  if not config.has_section(rrfm):
88
88
  config.add_section(rrfm)
89
89
  config[rrfm]["any:release_file.packagetype"] = "\n".join(remote.package_types)
@@ -1,5 +1,6 @@
1
1
  # coding=utf-8
2
2
  """Tests that perform actions over content unit."""
3
+ import pytest
3
4
  from pulp_smash.pulp3.bindings import delete_orphans, monitor_task, PulpTaskError
4
5
 
5
6
  from pulp_python.tests.functional.utils import (
@@ -12,6 +13,7 @@ from pulp_python.tests.functional.utils import (
12
13
  from pulp_python.tests.functional.utils import set_up_module as setUpModule # noqa:F401
13
14
  from tempfile import NamedTemporaryFile
14
15
  from urllib.parse import urljoin
16
+ from pypi_simple import PyPISimple
15
17
 
16
18
  from pulp_smash.utils import http_get
17
19
  from pulp_python.tests.functional.constants import (
@@ -227,3 +229,16 @@ class ContentUnitTestCase(TestCaseUsingBindings, TestHelpersMixin):
227
229
  for k, v in expected.items():
228
230
  with self.subTest(key=k):
229
231
  self.assertEqual(content_unit[k], v)
232
+
233
+
234
+ @pytest.mark.parallel
235
+ def test_upload_metadata_23_spec(python_content_factory):
236
+ """Test that packages using metadata spec 2.3 can be uploaded to pulp."""
237
+ filename = "urllib3-2.2.2-py3-none-any.whl"
238
+ with PyPISimple() as client:
239
+ page = client.get_project_page("urllib3")
240
+ for package in page.packages:
241
+ if package.filename == filename:
242
+ content = python_content_factory(filename, url=package.url)
243
+ assert content.metadata_version == "2.3"
244
+ break
@@ -1,5 +1,6 @@
1
1
  # coding=utf-8
2
2
  """Tests that verify download of content served by Pulp."""
3
+ import pytest
3
4
  import hashlib
4
5
  from random import choice
5
6
  from urllib.parse import urljoin
@@ -149,3 +150,32 @@ class PublishPyPIJSON(TestCaseUsingBindings, TestHelpersMixin):
149
150
 
150
151
  repo3 = self._create_repo_and_sync_with_remote(remote)
151
152
  self.assertEqual(get_content_summary(repo3.to_dict()), PYTHON_MD_FIXTURE_SUMMARY)
153
+
154
+
155
+ @pytest.mark.parallel
156
+ def test_pulp2pulp_sync_with_oddities(
157
+ python_repo_with_sync,
158
+ python_remote_factory,
159
+ python_publication_factory,
160
+ python_distribution_factory,
161
+ python_content_summary,
162
+ ):
163
+ """Test that Pulp can handle syncing packages with wierd names."""
164
+ remote = python_remote_factory(includes=["oslo.utils"], url="https://pypi.org")
165
+ repo = python_repo_with_sync(remote)
166
+ distro = python_distribution_factory(repository=repo.pulp_href)
167
+ summary = python_content_summary(repository_version=repo.latest_version_href)
168
+ # Test pulp 2 pulp full sync w/ live pypi apis
169
+ remote2 = python_remote_factory(includes=[], url=distro.base_url)
170
+ repo2 = python_repo_with_sync(remote2)
171
+ summary2 = python_content_summary(repository_version=repo2.latest_version_href)
172
+ assert summary2.present["python.python"]["count"] > 0
173
+ assert summary.present["python.python"]["count"] == summary2.present["python.python"]["count"]
174
+ # Test w/ publication
175
+ pub = python_publication_factory(repository=repo)
176
+ distro2 = python_distribution_factory(publication=pub.pulp_href)
177
+ remote3 = python_remote_factory(includes=[], url=distro2.base_url)
178
+ repo3 = python_repo_with_sync(remote3)
179
+ summary3 = python_content_summary(repository_version=repo3.latest_version_href)
180
+ assert summary3.present["python.python"]["count"] > 0
181
+ assert summary.present["python.python"]["count"] == summary3.present["python.python"]["count"]
@@ -641,6 +641,23 @@ class PlatformExcludeTestCase(unittest.TestCase):
641
641
  )
642
642
 
643
643
 
644
+ @pytest.mark.parallel
645
+ def test_sync_multiple_filters(
646
+ python_repo_with_sync, python_remote_factory, python_content_summary
647
+ ):
648
+ """Tests sync with multiple filters."""
649
+ remote = python_remote_factory(
650
+ includes=PYTHON_LG_PROJECT_SPECIFIER,
651
+ package_types=["bdist_wheel"],
652
+ keep_latest_packages=1,
653
+ prereleases=False
654
+ )
655
+ repo = python_repo_with_sync(remote)
656
+
657
+ summary = python_content_summary(repository_version=repo.latest_version_href)
658
+ assert summary.present["python.python"]["count"] == PYTHON_LG_FIXTURE_COUNTS["multi"]
659
+
660
+
644
661
  @pytest.mark.parallel
645
662
  def test_proxy_sync(
646
663
  python_repo,