Skip to content

Commit 05c0bc7

Browse files
authored
Upgrade Django to 3.2
* Add django-upgrade to pre-commit config * Run pre-commit * Upgrade requirements * Allow compilemessages to write *.mo files * Update test workflow * Replace custom BlobTextField with Django's BinaryField * Fix tests * Make migrations * Update submodules
1 parent 2555b50 commit 05c0bc7

File tree

133 files changed

+1155
-851
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

133 files changed

+1155
-851
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,10 @@ jobs:
129129
steps:
130130
- name: "Check out repository"
131131
uses: "actions/checkout@v3"
132-
- name: "Set up Python 3.7"
132+
- name: "Set up Python 3.8"
133133
uses: "actions/setup-python@v4"
134134
with:
135-
python-version: "3.7"
135+
python-version: "3.8"
136136
- name: "Install tox"
137137
run: |
138138
python -m pip install --upgrade pip

.pre-commit-config.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ repos:
1919
hooks:
2020
- id: reorder-python-imports
2121
args: [--py3-plus, --py36-plus]
22+
- repo: https://github.com/adamchainz/django-upgrade
23+
rev: "1.14.0"
24+
hooks:
25+
- id: django-upgrade
26+
args: [--target-version, "3.2"]
2227
- repo: https://github.com/ambv/black
2328
rev: 22.8.0
2429
hooks:

hack/Dockerfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,12 @@ RUN set -ex \
9494

9595
COPY . /src
9696

97+
# Allow Django's compilemessages to write *.mo files to the messages subdirectories.
98+
USER root
99+
RUN set -ex \
100+
&& find /src/src/dashboard/src/locale -type d -name 'LC_MESSAGES' -exec chown archivematica:archivematica '{}' \;
101+
USER archivematica
102+
97103
# -----------------------------------------------------------------------------
98104

99105
FROM base AS archivematica-mcp-client

requirements-dev.txt

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ amclient==1.2.3
1010
# via -r requirements.txt
1111
ammcpc==0.1.3
1212
# via -r requirements.txt
13+
asgiref==3.4.1
14+
# via
15+
# -r requirements.txt
16+
# django
1317
attrs==22.2.0
1418
# via
1519
# -r requirements.txt
@@ -19,7 +23,7 @@ bagit==1.8.1
1923
# via -r requirements.txt
2024
brotli==1.0.9
2125
# via -r requirements.txt
22-
certifi==2023.5.7
26+
certifi==2023.7.22
2327
# via
2428
# -r requirements.txt
2529
# requests
@@ -49,28 +53,28 @@ cryptography==40.0.2
4953
# pyopenssl
5054
distlib==0.3.7
5155
# via virtualenv
52-
django==1.11.29
56+
django==3.2.20
5357
# via
5458
# -r requirements.txt
5559
# django-auth-ldap
5660
# django-cas-ng
5761
# django-csp
5862
# mozilla-django-oidc
59-
django-auth-ldap==2.2.0
63+
django-auth-ldap==4.0.0
6064
# via -r requirements.txt
61-
django-autoslug==1.9.8
65+
django-autoslug==1.9.9
6266
# via -r requirements.txt
63-
django-cas-ng==3.6.0
67+
django-cas-ng==4.3.0
6468
# via -r requirements.txt
6569
django-csp==3.7
6670
# via -r requirements.txt
6771
django-forms-bootstrap==3.1.0
6872
# via -r requirements.txt
69-
django-prometheus==2.0.0
73+
django-prometheus==2.2.0
7074
# via -r requirements.txt
71-
django-shibboleth-remoteuser @ git+https://github.com/Brown-University-Library/django-shibboleth-remoteuser.git@67d270c65c201606fb86d548493d4b3fd8cc7a76
75+
django-shibboleth-remoteuser @ git+https://github.com/Brown-University-Library/django-shibboleth-remoteuser.git@962f6f9818683ef5f6432f091d22945e54b82592
7276
# via -r requirements.txt
73-
django-tastypie==0.14.3
77+
django-tastypie==0.14.5
7478
# via -r requirements.txt
7579
elasticsearch==6.8.2
7680
# via -r requirements.txt
@@ -88,7 +92,7 @@ greenlet==2.0.2
8892
# via
8993
# -r requirements.txt
9094
# gevent
91-
gunicorn==21.0.1
95+
gunicorn==21.2.0
9296
# via -r requirements.txt
9397
idna==3.4
9498
# via
@@ -134,7 +138,7 @@ metsrw==0.4.0
134138
# via -r requirements.txt
135139
mockldap @ git+https://github.com/artefactual-labs/[email protected]
136140
# via -r requirements-dev.in
137-
mozilla-django-oidc==1.2.4
141+
mozilla-django-oidc==2.0.0
138142
# via -r requirements.txt
139143
multidict==5.2.0
140144
# via yarl
@@ -191,7 +195,7 @@ pyopenssl==23.2.0
191195
# via
192196
# -r requirements.txt
193197
# josepy
194-
pyparsing==3.1.0
198+
pyparsing==3.1.1
195199
# via
196200
# -r requirements.txt
197201
# packaging
@@ -235,7 +239,7 @@ pytz==2023.3
235239
# via
236240
# -r requirements.txt
237241
# django
238-
pyyaml==6.0
242+
pyyaml==6.0.1
239243
# via vcrpy
240244
requests==2.27.1
241245
# via
@@ -250,12 +254,15 @@ six==1.16.0
250254
# -r requirements.txt
251255
# amclient
252256
# jsonschema
253-
# mozilla-django-oidc
254257
# opf-fido
255258
# python-cas
256259
# python-dateutil
257260
# tox
258261
# vcrpy
262+
sqlparse==0.4.4
263+
# via
264+
# -r requirements.txt
265+
# django
259266
toml==0.10.2
260267
# via tox
261268
tomli==1.2.3
@@ -269,6 +276,7 @@ tox==3.28.0
269276
typing-extensions==4.1.1
270277
# via
271278
# -r requirements.txt
279+
# asgiref
272280
# importlib-metadata
273281
# yarl
274282
unidecode==1.3.6

requirements.in

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
git+https://github.com/Brown-University-Library/django-shibboleth-remoteuser.git@67d270c65c201606fb86d548493d4b3fd8cc7a76#egg=django-shibboleth-remoteuser
2-
Django>=1.11,<2
1+
git+https://github.com/Brown-University-Library/django-shibboleth-remoteuser.git@962f6f9818683ef5f6432f091d22945e54b82592#egg=django-shibboleth-remoteuser
2+
Django>=3.2,<4
33
agentarchives
44
amclient
55
ammcpc
66
bagit
77
brotli
88
clamd
9-
django-autoslug==1.9.8
9+
django-autoslug
1010
django-csp
11-
django-forms-bootstrap>=3.0.0,<4.0.0
12-
django-prometheus>=2.0,<2.1
13-
django-tastypie==0.14.3
11+
django-forms-bootstrap
12+
django-prometheus>=2.2,<2.3
13+
django-tastypie
1414
elasticsearch>=6.0.0,<7.0.0
1515
gearman3
1616
gevent
@@ -22,21 +22,21 @@ lazy-paged-sequence
2222
lxml
2323
metsrw
2424
mysqlclient
25-
opf-fido==1.6.1
25+
opf-fido
2626
pip
2727
pip-tools
2828
prometheus_client
2929
python-dateutil
3030
requests~=2.27
3131
unidecode
32-
whitenoise~=5.3
32+
whitenoise>=5.3.0,<6.0
3333

3434
# Required by LDAP authentication
35-
django-auth-ldap>=2.2,<2.3
35+
django-auth-ldap
3636
python-ldap
3737

3838
# Required by CAS authentication
39-
django-cas-ng~=3.6
39+
django-cas-ng
4040

4141
# Required for OpenID Connect authentication
42-
mozilla-django-oidc~=1.2
42+
mozilla-django-oidc~=2.0

requirements.txt

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ amclient==1.2.3
1010
# via -r requirements.in
1111
ammcpc==0.1.3
1212
# via -r requirements.in
13+
asgiref==3.4.1
14+
# via django
1315
attrs==22.2.0
1416
# via jsonschema
1517
bagit==1.8.1
1618
# via -r requirements.in
1719
brotli==1.0.9
1820
# via -r requirements.in
19-
certifi==2023.5.7
21+
certifi==2023.7.22
2022
# via requests
2123
cffi==1.15.1
2224
# via cryptography
@@ -31,28 +33,28 @@ cryptography==40.0.2
3133
# josepy
3234
# mozilla-django-oidc
3335
# pyopenssl
34-
django==1.11.29
36+
django==3.2.20
3537
# via
3638
# -r requirements.in
3739
# django-auth-ldap
3840
# django-cas-ng
3941
# django-csp
4042
# mozilla-django-oidc
41-
django-auth-ldap==2.2.0
43+
django-auth-ldap==4.0.0
4244
# via -r requirements.in
43-
django-autoslug==1.9.8
45+
django-autoslug==1.9.9
4446
# via -r requirements.in
45-
django-cas-ng==3.6.0
47+
django-cas-ng==4.3.0
4648
# via -r requirements.in
4749
django-csp==3.7
4850
# via -r requirements.in
4951
django-forms-bootstrap==3.1.0
5052
# via -r requirements.in
51-
django-prometheus==2.0.0
53+
django-prometheus==2.2.0
5254
# via -r requirements.in
53-
django-shibboleth-remoteuser @ git+https://github.com/Brown-University-Library/django-shibboleth-remoteuser.git@67d270c65c201606fb86d548493d4b3fd8cc7a76
55+
django-shibboleth-remoteuser @ git+https://github.com/Brown-University-Library/django-shibboleth-remoteuser.git@962f6f9818683ef5f6432f091d22945e54b82592
5456
# via -r requirements.in
55-
django-tastypie==0.14.3
57+
django-tastypie==0.14.5
5658
# via -r requirements.in
5759
elasticsearch==6.8.2
5860
# via -r requirements.in
@@ -62,7 +64,7 @@ gevent==22.10.2
6264
# via -r requirements.in
6365
greenlet==2.0.2
6466
# via gevent
65-
gunicorn==21.0.1
67+
gunicorn==21.2.0
6668
# via -r requirements.in
6769
idna==3.4
6870
# via requests
@@ -91,7 +93,7 @@ lxml==4.9.3
9193
# python-cas
9294
metsrw==0.4.0
9395
# via -r requirements.in
94-
mozilla-django-oidc==1.2.4
96+
mozilla-django-oidc==2.0.0
9597
# via -r requirements.in
9698
mysqlclient==1.4.6
9799
# via
@@ -121,7 +123,7 @@ pycparser==2.21
121123
# via cffi
122124
pyopenssl==23.2.0
123125
# via josepy
124-
pyparsing==3.1.0
126+
pyparsing==3.1.1
125127
# via packaging
126128
pyrsistent==0.18.0
127129
# via jsonschema
@@ -151,14 +153,17 @@ six==1.16.0
151153
# via
152154
# amclient
153155
# jsonschema
154-
# mozilla-django-oidc
155156
# opf-fido
156157
# python-cas
157158
# python-dateutil
159+
sqlparse==0.4.4
160+
# via django
158161
tomli==1.2.3
159162
# via pep517
160163
typing-extensions==4.1.1
161-
# via importlib-metadata
164+
# via
165+
# asgiref
166+
# importlib-metadata
162167
unidecode==1.3.6
163168
# via -r requirements.in
164169
urllib3==1.26.16

src/MCPClient/lib/clientScripts/archivematicaCreateMETSMetadataXML.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def process_xml_metadata(mets, sip_dir, sip_uuid, sip_type, xml_validation):
6060
try:
6161
metadata_file = models.File.objects.get(
6262
sip_id=sip_uuid,
63-
currentlocation=f"%SIPDirectory%{xml_rel_path}",
63+
currentlocation=f"%SIPDirectory%{xml_rel_path}".encode(),
6464
)
6565
except models.File.DoesNotExist:
6666
xml_metadata_errors.append(f"No uuid for file: {xml_rel_path}")

src/MCPClient/lib/clientScripts/archivematicaCreateMETSReingest.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ def add_new_files(job, mets, sip_uuid, sip_dir):
437437
if rel_path != old_mets_rel_path:
438438
job.pyprint(rel_path, "not found in METS, must be new file")
439439
f = models.File.objects.get(
440-
currentlocation=current_loc, sip_id=str(sip_uuid)
440+
currentlocation=current_loc.encode(), sip_id=str(sip_uuid)
441441
)
442442
new_files.append(f)
443443
if rel_path == "objects/metadata/metadata.csv":
@@ -476,7 +476,7 @@ def add_new_files(job, mets, sip_uuid, sip_dir):
476476

477477
# Create parent directories if needed
478478
dirs = os.path.dirname(
479-
f.currentlocation.replace("%SIPDirectory%objects/", "", 1)
479+
f.currentlocation.decode().replace("%SIPDirectory%objects/", "", 1)
480480
).split("/")
481481
parent_fsentry = objects_fsentry
482482
for dirname in (d for d in dirs if d):
@@ -491,7 +491,7 @@ def add_new_files(job, mets, sip_uuid, sip_dir):
491491
original_f = f.original_file_set.get().source_file
492492
derived_from = mets.get_file(file_uuid=str(original_f.uuid))
493493
entry = metsrw.FSEntry(
494-
path=f.currentlocation.replace("%SIPDirectory%", "", 1),
494+
path=f.currentlocation.decode().replace("%SIPDirectory%", "", 1),
495495
use=f.filegrpuse,
496496
type="Item",
497497
file_uuid=str(f.uuid),
@@ -545,7 +545,9 @@ def _get_directory_fsentry(mets, path):
545545

546546
def update_metadata_csv(job, mets, metadata_csv, sip_uuid, sip_dir, state):
547547
job.pyprint("Parse new metadata.csv")
548-
full_path = metadata_csv.currentlocation.replace("%SIPDirectory%", sip_dir, 1)
548+
full_path = metadata_csv.currentlocation.decode().replace(
549+
"%SIPDirectory%", sip_dir, 1
550+
)
549551
csvmetadata = createmetscsv.parseMetadataCSV(job, full_path)
550552

551553
# FIXME This doesn't support having both DC and non-DC metadata in dmdSecs
@@ -607,7 +609,6 @@ def _get_old_mets_rel_path(sip_uuid):
607609

608610

609611
def update_mets(job, sip_dir, sip_uuid, state):
610-
611612
old_mets_path = os.path.join(sip_dir, _get_old_mets_rel_path(sip_uuid))
612613
job.pyprint("Looking for old METS at path", old_mets_path)
613614

0 commit comments

Comments
 (0)