pulp-python 3.11.3__tar.gz → 3.11.4__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 → pulp_python-3.11.4}/CHANGES.md +13 -0
  2. {pulp-python-3.11.3 → pulp_python-3.11.4}/MANIFEST.in +1 -0
  3. {pulp-python-3.11.3 → pulp_python-3.11.4}/PKG-INFO +16 -2
  4. {pulp-python-3.11.3 → pulp_python-3.11.4}/functest_requirements.txt +2 -0
  5. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/__init__.py +1 -1
  6. pulp_python-3.11.4/pulp_python/app/fields.py +12 -0
  7. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/pypi/serializers.py +4 -3
  8. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/serializers.py +7 -6
  9. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/api/test_crud_content_unit.py +13 -0
  10. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/api/test_pypi_apis.py +86 -50
  11. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python.egg-info/PKG-INFO +16 -2
  12. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python.egg-info/SOURCES.txt +1 -0
  13. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python.egg-info/requires.txt +1 -1
  14. pulp_python-3.11.4/pyproject.toml +74 -0
  15. {pulp-python-3.11.3 → pulp_python-3.11.4}/requirements.txt +1 -1
  16. {pulp-python-3.11.3 → pulp_python-3.11.4}/setup.py +1 -1
  17. pulp-python-3.11.3/pyproject.toml +0 -29
  18. {pulp-python-3.11.3 → pulp_python-3.11.4}/COMMITMENT +0 -0
  19. {pulp-python-3.11.3 → pulp_python-3.11.4}/COPYRIGHT +0 -0
  20. {pulp-python-3.11.3 → pulp_python-3.11.4}/LICENSE +0 -0
  21. {pulp-python-3.11.3 → pulp_python-3.11.4}/README.md +0 -0
  22. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/__init__.py +0 -0
  23. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/migrations/0001_initial.py +0 -0
  24. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/migrations/0002_pythonpackagecontent_python_version.py +0 -0
  25. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/migrations/0003_new_sync_filters.py +0 -0
  26. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/migrations/0004_DATA_swap_distribution_model.py +0 -0
  27. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/migrations/0005_pythonpackagecontent_sha256.py +0 -0
  28. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/migrations/0006_pythonrepository_autopublish.py +0 -0
  29. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/migrations/0007_pythonpackagecontent_mv-2-1.py +0 -0
  30. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/migrations/0008_pythonpackagecontent_unique_sha256.py +0 -0
  31. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/migrations/0009_pythondistribution_allow_uploads.py +0 -0
  32. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/migrations/0010_update_json_field.py +0 -0
  33. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/migrations/0011_alter_pythondistribution_distribution_ptr_and_more.py +0 -0
  34. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/migrations/__init__.py +0 -0
  35. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/modelresource.py +0 -0
  36. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/models.py +0 -0
  37. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/pypi/__init__.py +0 -0
  38. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/pypi/views.py +0 -0
  39. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/settings.py +0 -0
  40. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/tasks/__init__.py +0 -0
  41. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/tasks/publish.py +0 -0
  42. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/tasks/sync.py +0 -0
  43. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/tasks/upload.py +0 -0
  44. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/urls.py +0 -0
  45. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/utils.py +0 -0
  46. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/viewsets.py +0 -0
  47. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/webserver_snippets/__init__.py +0 -0
  48. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/webserver_snippets/apache.conf +0 -0
  49. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/app/webserver_snippets/nginx.conf +0 -0
  50. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/__init__.py +0 -0
  51. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/__init__.py +0 -0
  52. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/api/__init__.py +0 -0
  53. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/api/test_auto_publish.py +0 -0
  54. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/api/test_consume_content.py +0 -0
  55. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/api/test_crud_publications.py +0 -0
  56. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/api/test_crud_remotes.py +0 -0
  57. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/api/test_download_content.py +0 -0
  58. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/api/test_export_import.py +0 -0
  59. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/api/test_full_mirror.py +0 -0
  60. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/api/test_sync.py +0 -0
  61. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/conftest.py +0 -0
  62. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/constants.py +0 -0
  63. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/functional/utils.py +0 -0
  64. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/unit/__init__.py +0 -0
  65. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/unit/test_models.py +0 -0
  66. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/upgrade/__init__.py +0 -0
  67. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/upgrade/post/__init__.py +0 -0
  68. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/upgrade/post/test_publish.py +0 -0
  69. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/upgrade/pre/__init__.py +0 -0
  70. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python/tests/upgrade/pre/test_publish.py +0 -0
  71. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python.egg-info/dependency_links.txt +0 -0
  72. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python.egg-info/entry_points.txt +0 -0
  73. {pulp-python-3.11.3 → pulp_python-3.11.4}/pulp_python.egg-info/top_level.txt +0 -0
  74. {pulp-python-3.11.3 → pulp_python-3.11.4}/setup.cfg +0 -0
  75. {pulp-python-3.11.3 → pulp_python-3.11.4}/test_requirements.txt +0 -0
  76. {pulp-python-3.11.3 → pulp_python-3.11.4}/unittest_requirements.txt +0 -0
@@ -8,6 +8,19 @@
8
8
 
9
9
  [//]: # (towncrier release notes start)
10
10
 
11
+ ## 3.11.4 (2025-02-20) {: #3.11.4 }
12
+
13
+ #### Bugfixes {: #3.11.4-bugfix }
14
+
15
+ - Fixed the JSONField specification so it doesn't break ruby bindings.
16
+ See context [here](https://github.com/pulp/pulp_rpm/issues/3639).
17
+
18
+ #### Misc {: #3.11.4-misc }
19
+
20
+ -
21
+
22
+ ---
23
+
11
24
  # ## 3.11.3 (2024-08-21) {: #3.11.3 }
12
25
 
13
26
  #### Bugfixes {: #3.11.3-bugfix }
@@ -8,3 +8,4 @@ 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
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: pulp-python
3
- Version: 3.11.3
3
+ Version: 3.11.4
4
4
  Summary: pulp-python plugin for the Pulp Project
5
5
  Home-page: https://www.pulpproject.org
6
6
  Author: Pulp Project Developers
@@ -17,6 +17,20 @@ Classifier: Programming Language :: Python :: 3.9
17
17
  Requires-Python: >=3.8
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
+ Requires-Dist: pulpcore<3.55,>=3.28
21
+ Requires-Dist: pkginfo<1.13.0,>=1.12.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: requires-dist
32
+ Dynamic: requires-python
33
+ Dynamic: summary
20
34
 
21
35
  # pulp_python
22
36
 
@@ -3,3 +3,5 @@ pytest<8
3
3
  lxml
4
4
  twine
5
5
  pypi-simple
6
+ pytest-xdist
7
+ pytest-timeout
@@ -8,5 +8,5 @@ class PulpPythonPluginAppConfig(PulpPluginAppConfig):
8
8
 
9
9
  name = "pulp_python.app"
10
10
  label = "python"
11
- version = "3.11.3"
11
+ version = "3.11.4"
12
12
  python_package_name = "pulp-python"
@@ -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
+ """
@@ -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 = serializers.JSONField(help_text=_("Core metadata of the package"))
31
- releases = serializers.JSONField(help_text=_("List of all the releases of the package"))
32
- urls = serializers.JSONField()
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):
@@ -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 = serializers.JSONField(
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 = serializers.JSONField(
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 = serializers.JSONField(
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 = serializers.JSONField(
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 = serializers.JSONField(
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 = serializers.JSONField(
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
  )
@@ -242,3 +242,16 @@ def test_upload_metadata_23_spec(python_content_factory):
242
242
  content = python_content_factory(filename, url=package.url)
243
243
  assert content.metadata_version == "2.3"
244
244
  break
245
+
246
+
247
+ @pytest.mark.parallel
248
+ def test_upload_metadata_24_spec(python_content_factory):
249
+ """Test that packages using metadata spec 2.4 can be uploaded to pulp."""
250
+ filename = "urllib3-2.3.0-py3-none-any.whl"
251
+ with PyPISimple() as client:
252
+ page = client.get_project_page("urllib3")
253
+ for package in page.packages:
254
+ if package.filename == filename:
255
+ content = python_content_factory(filename, url=package.url)
256
+ assert content.metadata_version == "2.4"
257
+ break
@@ -3,10 +3,11 @@ import os
3
3
  import requests
4
4
  import subprocess
5
5
  import tempfile
6
+ import pytest
6
7
 
7
8
  from urllib.parse import urljoin
8
9
 
9
- from pulp_smash.pulp3.bindings import monitor_task, tasks as task_api
10
+ from pulp_smash.pulp3.bindings import monitor_task
10
11
  from pulp_smash.pulp3.utils import get_added_content_summary, get_content_summary
11
12
  from pulp_python.tests.functional.constants import (
12
13
  PYTHON_CONTENT_NAME,
@@ -40,6 +41,32 @@ HOST = client.configuration.host
40
41
  PYPI_HOST = urljoin(HOST, PULP_PYPI_BASE_URL)
41
42
 
42
43
 
44
+ @pytest.fixture
45
+ def python_empty_repo_distro(python_repo_factory, python_distribution_factory):
46
+ """Returns an empty repo with and distribution serving it."""
47
+ def _generate_empty_repo_distro(repo_body=None, distro_body=None):
48
+ repo_body = repo_body or {}
49
+ distro_body = distro_body or {}
50
+ repo = python_repo_factory(**repo_body)
51
+ distro = python_distribution_factory(repository=repo.pulp_href, **distro_body)
52
+ return repo, distro
53
+
54
+ yield _generate_empty_repo_distro
55
+
56
+
57
+ @pytest.fixture(scope="module")
58
+ def python_package_dist_directory(tmp_path_factory, http_get):
59
+ """Creates a temp dir to hold package distros for uploading."""
60
+ dist_dir = tmp_path_factory.mktemp("dist")
61
+ egg_file = dist_dir / PYTHON_EGG_FILENAME
62
+ wheel_file = dist_dir / PYTHON_WHEEL_FILENAME
63
+ with open(egg_file, "wb") as f:
64
+ f.write(http_get(PYTHON_EGG_URL))
65
+ with open(wheel_file, "wb") as f:
66
+ f.write(http_get(PYTHON_WHEEL_URL))
67
+ yield dist_dir, egg_file, wheel_file
68
+
69
+
43
70
  class PyPISummaryTestCase(TestCaseUsingBindings, TestHelpersMixin):
44
71
  """Tests the summary response of the base url of an index."""
45
72
 
@@ -162,18 +189,51 @@ class PyPIPackageUpload(TestCaseUsingBindings, TestHelpersMixin):
162
189
  content = get_added_content_summary(repo, f"{repo.versions_href}1/")
163
190
  self.assertDictEqual({PYTHON_CONTENT_NAME: 1}, content)
164
191
 
165
- def test_twine_upload(self):
166
- """Tests that packages can be properly uploaded through Twine."""
167
- repo, distro = self._create_empty_repo_and_distribution()
168
- url = urljoin(PYPI_HOST, distro.base_path + "/legacy/")
169
- username, password = "admin", "password"
192
+
193
+ @pytest.mark.parallel
194
+ def test_twine_upload(
195
+ pulpcore_bindings,
196
+ python_content_summary,
197
+ python_empty_repo_distro,
198
+ python_package_dist_directory,
199
+ monitor_task,
200
+ ):
201
+ """Tests that packages can be properly uploaded through Twine."""
202
+ repo, distro = python_empty_repo_distro()
203
+ url = urljoin(distro.base_url, "legacy/")
204
+ dist_dir, _, _ = python_package_dist_directory
205
+ username, password = "admin", "password"
206
+ subprocess.run(
207
+ (
208
+ "twine",
209
+ "upload",
210
+ "--repository-url",
211
+ url,
212
+ dist_dir / "*",
213
+ "-u",
214
+ username,
215
+ "-p",
216
+ password,
217
+ ),
218
+ capture_output=True,
219
+ check=True,
220
+ )
221
+ tasks = pulpcore_bindings.TasksApi.list(reserved_resources=repo.pulp_href).results
222
+ for task in reversed(tasks):
223
+ t = monitor_task(task.pulp_href)
224
+ repo_ver_href = t.created_resources[-1]
225
+ summary = python_content_summary(repository_version=repo_ver_href)
226
+ assert summary.present["python.python"]["count"] == 2
227
+
228
+ # Test re-uploading same packages gives error
229
+ with pytest.raises(subprocess.CalledProcessError):
170
230
  subprocess.run(
171
231
  (
172
232
  "twine",
173
233
  "upload",
174
234
  "--repository-url",
175
235
  url,
176
- self.dists_dir.name + "/*",
236
+ dist_dir / "*",
177
237
  "-u",
178
238
  username,
179
239
  "-p",
@@ -182,50 +242,26 @@ class PyPIPackageUpload(TestCaseUsingBindings, TestHelpersMixin):
182
242
  capture_output=True,
183
243
  check=True,
184
244
  )
185
- tasks = task_api.list(reserved_resources_record=[repo.pulp_href]).results
186
- for task in reversed(tasks):
187
- t = monitor_task(task.pulp_href)
188
- repo_ver_href = t.created_resources[-1]
189
- content = get_content_summary(repo, f"{repo_ver_href}")
190
- self.assertDictEqual({PYTHON_CONTENT_NAME: 2}, content)
191
245
 
192
- # Test re-uploading same packages gives error
193
- with self.assertRaises(subprocess.CalledProcessError):
194
- subprocess.run(
195
- (
196
- "twine",
197
- "upload",
198
- "--repository-url",
199
- url,
200
- self.dists_dir.name + "/*",
201
- "-u",
202
- username,
203
- "-p",
204
- password,
205
- ),
206
- capture_output=True,
207
- check=True,
208
- )
209
-
210
- # Test re-uploading same packages with --skip-existing works
211
- output = subprocess.run(
212
- (
213
- "twine",
214
- "upload",
215
- "--repository-url",
216
- url,
217
- self.dists_dir.name + "/*",
218
- "-u",
219
- username,
220
- "-p",
221
- password,
222
- "--skip-existing",
223
- ),
224
- capture_output=True,
225
- check=True,
226
- text=True
227
- )
228
- self.assertEqual(output.stdout.count("Skipping"), 2)
246
+ # Test re-uploading same packages with --skip-existing works
247
+ output = subprocess.run(
248
+ (
249
+ "twine",
250
+ "upload",
251
+ "--repository-url",
252
+ url,
253
+ dist_dir / "*",
254
+ "-u",
255
+ username,
256
+ "-p",
257
+ password,
258
+ "--skip-existing",
259
+ ),
260
+ capture_output=True,
261
+ check=True,
262
+ text=True
263
+ )
264
+ assert output.stdout.count("Skipping") == 2
229
265
 
230
266
 
231
267
  class PyPISimpleApi(TestCaseUsingBindings, TestHelpersMixin):
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: pulp-python
3
- Version: 3.11.3
3
+ Version: 3.11.4
4
4
  Summary: pulp-python plugin for the Pulp Project
5
5
  Home-page: https://www.pulpproject.org
6
6
  Author: Pulp Project Developers
@@ -17,6 +17,20 @@ Classifier: Programming Language :: Python :: 3.9
17
17
  Requires-Python: >=3.8
18
18
  Description-Content-Type: text/markdown
19
19
  License-File: LICENSE
20
+ Requires-Dist: pulpcore<3.55,>=3.28
21
+ Requires-Dist: pkginfo<1.13.0,>=1.12.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: requires-dist
32
+ Dynamic: requires-python
33
+ Dynamic: summary
20
34
 
21
35
  # pulp_python
22
36
 
@@ -18,6 +18,7 @@ pulp_python.egg-info/entry_points.txt
18
18
  pulp_python.egg-info/requires.txt
19
19
  pulp_python.egg-info/top_level.txt
20
20
  pulp_python/app/__init__.py
21
+ pulp_python/app/fields.py
21
22
  pulp_python/app/modelresource.py
22
23
  pulp_python/app/models.py
23
24
  pulp_python/app/serializers.py
@@ -1,4 +1,4 @@
1
1
  pulpcore<3.55,>=3.28
2
- pkginfo<1.12.0,>=1.10.0
2
+ pkginfo<1.13.0,>=1.12.0
3
3
  bandersnatch<6.2,>=6.1
4
4
  pypi-simple<1.0.0,>=0.9.0
@@ -0,0 +1,74 @@
1
+ [tool.towncrier]
2
+ package = "pulp_python"
3
+ filename = "CHANGES.md"
4
+ directory = "CHANGES/"
5
+ title_format = "## {version} ({project_date}) {{: #{version} }}"
6
+ template = "CHANGES/.TEMPLATE.md"
7
+ issue_format = "[#{issue}](https://github.com/pulp/pulp_python/issues/{issue})"
8
+ start_string = "[//]: # (towncrier release notes start)\n"
9
+ underlines = ["", "", ""]
10
+
11
+ [tool.check-manifest]
12
+ ignore = [
13
+ ".bumpversion.cfg",
14
+ ".pep8speaks.yml",
15
+ "CHANGES/**",
16
+ "CONTRIBUTING.rst",
17
+ "HISTORY.rst",
18
+ "dev_requirements.txt",
19
+ "doc_requirements.txt",
20
+ "docs/**",
21
+ "template_config.yml",
22
+ ".travis/**",
23
+ ".travis.yml",
24
+ "shelf_reader-0.1-py2-none-any.whl",
25
+ ".github/**",
26
+ ".ci/**",
27
+ "lint_requirements.txt",
28
+ ".flake8",
29
+ ]
30
+
31
+ [tool.bumpversion]
32
+ # This section is managed by the plugin template. Do not edit manually.
33
+
34
+ current_version = "3.11.4"
35
+ commit = false
36
+ tag = false
37
+ parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<alpha>0a)?(?P<patch>\\d+)(\\.(?P<release>[a-z]+))?"
38
+ serialize = [
39
+ "{major}.{minor}.{patch}.{release}",
40
+ "{major}.{minor}.{patch}",
41
+ "{major}.{minor}.{alpha}{patch}.{release}",
42
+ "{major}.{minor}.{alpha}{patch}",
43
+ ]
44
+
45
+ [tool.bumpversion.parts.alpha]
46
+ # This section is managed by the plugin template. Do not edit manually.
47
+
48
+ # This is sort of a hack. In PEP440 prerelease markers work quite differently.
49
+ # But this fits best with the way we have been doing release versions.
50
+ optional_value = "final"
51
+ values = [
52
+ "0a",
53
+ "final",
54
+ ]
55
+ independent = true
56
+
57
+ [tool.bumpversion.parts.release]
58
+ # This section is managed by the plugin template. Do not edit manually.
59
+
60
+ optional_value = "prod"
61
+ values = [
62
+ "dev",
63
+ "prod",
64
+ ]
65
+
66
+ [[tool.bumpversion.files]]
67
+ # This section is managed by the plugin template. Do not edit manually.
68
+
69
+ filename = "./pulp_python/app/__init__.py"
70
+ search = "version = \"{current_version}\""
71
+ replace = "version = \"{new_version}\""
72
+
73
+ [[tool.bumpversion.files]]
74
+ filename = "./setup.py"
@@ -1,4 +1,4 @@
1
1
  pulpcore>=3.28,<3.55
2
- pkginfo>=1.10.0,<1.12.0 # Twine has <1.11 in their requirements
2
+ pkginfo>=1.12.0,<1.13.0
3
3
  bandersnatch>=6.1,<6.2
4
4
  pypi-simple>=0.9.0,<1.0.0
@@ -10,7 +10,7 @@ with open("README.md") as f:
10
10
 
11
11
  setup(
12
12
  name="pulp-python",
13
- version="3.11.3",
13
+ version="3.11.4",
14
14
  description="pulp-python plugin for the Pulp Project",
15
15
  long_description=long_description,
16
16
  long_description_content_type="text/markdown",
@@ -1,29 +0,0 @@
1
- [tool.towncrier]
2
- package = "pulp_python"
3
- filename = "CHANGES.md"
4
- directory = "CHANGES/"
5
- title_format = "## {version} ({project_date}) {{: #{version} }}"
6
- template = "CHANGES/.TEMPLATE.md"
7
- issue_format = "[#{issue}](https://github.com/pulp/pulp_python/issues/{issue})"
8
- start_string = "[//]: # (towncrier release notes start)\n"
9
- underlines = ["", "", ""]
10
-
11
- [tool.check-manifest]
12
- ignore = [
13
- ".bumpversion.cfg",
14
- ".pep8speaks.yml",
15
- "CHANGES/**",
16
- "CONTRIBUTING.rst",
17
- "HISTORY.rst",
18
- "dev_requirements.txt",
19
- "doc_requirements.txt",
20
- "docs/**",
21
- "template_config.yml",
22
- ".travis/**",
23
- ".travis.yml",
24
- "shelf_reader-0.1-py2-none-any.whl",
25
- ".github/**",
26
- ".ci/**",
27
- "lint_requirements.txt",
28
- ".flake8",
29
- ]
File without changes
File without changes
File without changes
File without changes
File without changes