Skip to content

Commit 5f80782

Browse files
committed
Bump pulpcore upperbound to <3.100
1 parent 6b526cf commit 5f80782

5 files changed

Lines changed: 166 additions & 6 deletions

File tree

CHANGES/+3.85-compat.feature

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Bump pulpcore upperbound to <3.100. pulp_python is now a Python >=3.11 project.
Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
# Generated by Django 4.2.23 on 2025-08-12 18:24
2+
3+
import django.contrib.postgres.fields
4+
import django.contrib.postgres.fields.jsonb
5+
from django.db import migrations, models
6+
import django.db.models.deletion
7+
8+
9+
class Migration(migrations.Migration):
10+
11+
replaces = [('python', '0001_initial'), ('python', '0002_pythonpackagecontent_python_version'), ('python', '0003_new_sync_filters'), ('python', '0004_DATA_swap_distribution_model'), ('python', '0005_pythonpackagecontent_sha256'), ('python', '0006_pythonrepository_autopublish'), ('python', '0007_pythonpackagecontent_mv-2-1'), ('python', '0008_pythonpackagecontent_unique_sha256'), ('python', '0009_pythondistribution_allow_uploads'), ('python', '0010_update_json_field')]
12+
13+
initial = True
14+
15+
dependencies = [
16+
('core', '0091_systemid'),
17+
]
18+
19+
operations = [
20+
migrations.CreateModel(
21+
name='PythonRemote',
22+
fields=[
23+
('remote_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='python_pythonremote', serialize=False, to='core.remote')),
24+
('prereleases', models.BooleanField(default=False)),
25+
('includes', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
26+
('excludes', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
27+
('exclude_platforms', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=10), choices=[('windows', 'windows'), ('macos', 'macos'), ('freebsd', 'freebsd'), ('linux', 'linux')], default=list, size=None)),
28+
('keep_latest_packages', models.IntegerField(default=0)),
29+
('package_types', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=15), choices=[('bdist_dmg', 'bdist_dmg'), ('bdist_dumb', 'bdist_dumb'), ('bdist_egg', 'bdist_egg'), ('bdist_msi', 'bdist_msi'), ('bdist_rpm', 'bdist_rpm'), ('bdist_wheel', 'bdist_wheel'), ('bdist_wininst', 'bdist_wininst'), ('sdist', 'sdist')], default=list, size=None)),
30+
],
31+
options={
32+
'default_related_name': '%(app_label)s_%(model_name)s',
33+
},
34+
bases=('core.remote',),
35+
),
36+
migrations.CreateModel(
37+
name='PythonPublication',
38+
fields=[
39+
('publication_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='python_pythonpublication', serialize=False, to='core.publication')),
40+
],
41+
options={
42+
'default_related_name': '%(app_label)s_%(model_name)s',
43+
},
44+
bases=('core.publication',),
45+
),
46+
migrations.CreateModel(
47+
name='PythonDistribution',
48+
fields=[
49+
('distribution_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='python_pythondistribution', serialize=False, to='core.distribution')),
50+
],
51+
options={
52+
'default_related_name': '%(app_label)s_%(model_name)s',
53+
},
54+
bases=('core.distribution',),
55+
),
56+
migrations.CreateModel(
57+
name='PythonRepository',
58+
fields=[
59+
('repository_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='python_pythonrepository', serialize=False, to='core.repository')),
60+
('autopublish', models.BooleanField(default=False)),
61+
],
62+
options={
63+
'default_related_name': '%(app_label)s_%(model_name)s',
64+
},
65+
bases=('core.repository',),
66+
),
67+
migrations.CreateModel(
68+
name='PythonPackageContent',
69+
fields=[
70+
('content_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='python_pythonpackagecontent', serialize=False, to='core.content')),
71+
('filename', models.TextField(db_index=True)),
72+
('packagetype', models.TextField(choices=[('bdist_dmg', 'bdist_dmg'), ('bdist_dumb', 'bdist_dumb'), ('bdist_egg', 'bdist_egg'), ('bdist_msi', 'bdist_msi'), ('bdist_rpm', 'bdist_rpm'), ('bdist_wheel', 'bdist_wheel'), ('bdist_wininst', 'bdist_wininst'), ('sdist', 'sdist')])),
73+
('name', models.TextField()),
74+
('version', models.TextField()),
75+
('metadata_version', models.TextField()),
76+
('summary', models.TextField()),
77+
('description', models.TextField()),
78+
('keywords', models.TextField()),
79+
('home_page', models.TextField()),
80+
('download_url', models.TextField()),
81+
('author', models.TextField()),
82+
('author_email', models.TextField()),
83+
('maintainer', models.TextField()),
84+
('maintainer_email', models.TextField()),
85+
('license', models.TextField()),
86+
('requires_python', models.TextField()),
87+
('project_url', models.TextField()),
88+
('platform', models.TextField()),
89+
('supported_platform', models.TextField()),
90+
('requires_dist', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
91+
('provides_dist', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
92+
('obsoletes_dist', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
93+
('requires_external', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
94+
('classifiers', django.contrib.postgres.fields.jsonb.JSONField(default=list)),
95+
('python_version', models.TextField(default='')),
96+
('sha256', models.CharField(db_index=True, max_length=64, unique=True)),
97+
('description_content_type', models.TextField(default='')),
98+
('project_urls', django.contrib.postgres.fields.jsonb.JSONField(default=dict)),
99+
],
100+
options={
101+
'default_related_name': '%(app_label)s_%(model_name)s',
102+
'unique_together': {('filename',)},
103+
},
104+
bases=('core.content',),
105+
),
106+
migrations.SeparateDatabaseAndState(
107+
state_operations=[
108+
migrations.AlterUniqueTogether(
109+
name='pythonpackagecontent',
110+
unique_together={('sha256',)},
111+
),
112+
],
113+
),
114+
migrations.AddField(
115+
model_name='pythondistribution',
116+
name='allow_uploads',
117+
field=models.BooleanField(default=True),
118+
),
119+
migrations.AlterField(
120+
model_name='pythonpackagecontent',
121+
name='classifiers',
122+
field=models.JSONField(default=list),
123+
),
124+
migrations.AlterField(
125+
model_name='pythonpackagecontent',
126+
name='obsoletes_dist',
127+
field=models.JSONField(default=list),
128+
),
129+
migrations.AlterField(
130+
model_name='pythonpackagecontent',
131+
name='project_urls',
132+
field=models.JSONField(default=dict),
133+
),
134+
migrations.AlterField(
135+
model_name='pythonpackagecontent',
136+
name='provides_dist',
137+
field=models.JSONField(default=list),
138+
),
139+
migrations.AlterField(
140+
model_name='pythonpackagecontent',
141+
name='requires_dist',
142+
field=models.JSONField(default=list),
143+
),
144+
migrations.AlterField(
145+
model_name='pythonpackagecontent',
146+
name='requires_external',
147+
field=models.JSONField(default=list),
148+
),
149+
migrations.AlterField(
150+
model_name='pythonremote',
151+
name='excludes',
152+
field=models.JSONField(default=list),
153+
),
154+
migrations.AlterField(
155+
model_name='pythonremote',
156+
name='includes',
157+
field=models.JSONField(default=list),
158+
),
159+
]

pulp_python/app/migrations/0004_DATA_swap_distribution_model.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ class Migration(migrations.Migration):
7676
migrations.RunPython(
7777
code=migrate_data_from_old_model_to_new_model_up,
7878
reverse_code=migrate_data_from_old_model_to_new_model_down,
79+
elidable=True,
7980
),
8081
migrations.DeleteModel(
8182
name="PythonDistribution",

pulp_python/app/migrations/0005_pythonpackagecontent_sha256.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,5 @@ class Migration(migrations.Migration):
4747
field=models.CharField(max_length=64, default=""),
4848
preserve_default=False,
4949
),
50-
migrations.RunPython(add_sha256_to_current_models, migrations.RunPython.noop),
50+
migrations.RunPython(add_sha256_to_current_models, migrations.RunPython.noop, elidable=True),
5151
]

pyproject.toml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,15 @@ classifiers=[
2020
"Framework :: Django",
2121
"Programming Language :: Python",
2222
"Programming Language :: Python :: 3",
23-
"Programming Language :: Python :: 3.9",
24-
"Programming Language :: Python :: 3.10",
2523
"Programming Language :: Python :: 3.11",
2624
"Programming Language :: Python :: 3.12",
25+
"Programming Language :: Python :: 3.13",
2726
]
28-
requires-python = ">=3.9"
27+
requires-python = ">=3.11"
2928
dependencies = [
30-
"pulpcore>=3.49.0,<3.85",
29+
"pulpcore>=3.49.0,<3.100",
3130
"pkginfo>=1.12.0,<1.13.0",
32-
"bandersnatch>=6.3.0,<6.4", # Anything >=6.4 requires Python 3.10+
31+
"bandersnatch>=6.3.0,<6.7",
3332
"pypi-simple>=1.5.0,<2.0",
3433
]
3534

0 commit comments

Comments
 (0)