Skip to content

Commit c2e2462

Browse files
authored
* Added supporting Django 6.0 (#200)
* Removed Python 3.6, 3.7 and 3.8 from tests * Added Python 3.14 in tests * Removed MJML older than 4.14.1 from tests * Added MJML 4.16.1 and 4.17.2 in tests
1 parent 51bc53e commit c2e2462

File tree

6 files changed

+51
-166
lines changed

6 files changed

+51
-166
lines changed

.github/workflows/test.yml

Lines changed: 35 additions & 157 deletions
Original file line numberDiff line numberDiff line change
@@ -6,138 +6,16 @@ on:
66
types: [ opened, synchronize ]
77

88
jobs:
9-
test-py-3-6:
10-
runs-on: ubuntu-20.04 # Python 3.6 is not available in newer releases
11-
env:
12-
PYTHON_VER: 3.6
13-
NODE_VER: 20.x
14-
strategy:
15-
matrix:
16-
django-ver: [ '<2.3', '<3.1', '<3.2', '<3.3' ]
17-
mjml-ver: [ '4.7.1', '4.8.2', '4.9.3', '4.10.4', '4.11.0', '4.12.0', '4.13.0', '4.14.1', '4.15.2' ]
18-
tcp-server-ver: [ 'v1.2' ]
19-
fail-fast: false
20-
steps:
21-
- name: Checkout
22-
uses: actions/checkout@v4
23-
- name: Checkout tcp server
24-
uses: actions/checkout@v4
25-
with:
26-
repository: 'liminspace/mjml-tcpserver'
27-
ref: ${{ matrix.tcp-server-ver }}
28-
path: './mjml-tcpserver'
29-
- name: Set up Python ${{ env.PYTHON_VER }}
30-
uses: actions/setup-python@v5
31-
with:
32-
python-version: ${{ env.PYTHON_VER }}
33-
- name: Cache pip
34-
uses: actions/cache@v4
35-
env:
36-
cache-name: cache-pip
37-
with:
38-
path: ~/.cache/pip
39-
key: ${{ runner.os }}-${{ env.cache-name }}-${{ env.PYTHON_VER }}-${{ matrix.django-ver }}
40-
restore-keys: |
41-
${{ runner.os }}-${{ env.cache-name }}-${{ env.PYTHON_VER }}-
42-
- name: Install Python dependencies
43-
run: |
44-
pip install "Django${{ matrix.django-ver }}"
45-
pip install "requests>=2.24.0,<2.28.0"
46-
- name: Set up Node.js ${{ env.NODE_VER }}
47-
uses: actions/setup-node@v4
48-
with:
49-
node-version: ${{ env.NODE_VER }}
50-
- name: Cache npm
51-
uses: actions/cache@v4
52-
env:
53-
cache-name: cache-npm
54-
with:
55-
path: ~/.npm
56-
key: ${{ runner.os }}-${{ env.cache-name }}-${{ env.NODE_VER }}-${{ matrix.mjml-ver }}
57-
restore-keys: |
58-
${{ runner.os }}-${{ env.cache-name }}-${{ env.NODE_VER }}-
59-
- name: Install Node dependencies
60-
run: |
61-
npm cache verify
62-
npm install -g [email protected]
63-
npm install mjml@${{ matrix.mjml-ver }}
64-
- name: Show info
65-
run: |
66-
node_modules/.bin/mjml --version
67-
- name: Test
68-
run: |
69-
python tools.py test
70-
test-py-3-7:
71-
runs-on: ubuntu-22.04 # Python 3.7 is not available in newer releases
72-
env:
73-
PYTHON_VER: 3.7
74-
NODE_VER: 20.x
75-
strategy:
76-
matrix:
77-
django-ver: [ '<2.3', '<3.1', '<3.2', '<3.3' ]
78-
mjml-ver: [ '4.7.1', '4.8.2', '4.9.3', '4.10.4', '4.11.0', '4.12.0', '4.13.0', '4.14.1', '4.15.2' ]
79-
tcp-server-ver: [ 'v1.2' ]
80-
fail-fast: false
81-
steps:
82-
- name: Checkout
83-
uses: actions/checkout@v4
84-
- name: Checkout tcp server
85-
uses: actions/checkout@v4
86-
with:
87-
repository: 'liminspace/mjml-tcpserver'
88-
ref: ${{ matrix.tcp-server-ver }}
89-
path: './mjml-tcpserver'
90-
- name: Set up Python ${{ env.PYTHON_VER }}
91-
uses: actions/setup-python@v5
92-
with:
93-
python-version: ${{ env.PYTHON_VER }}
94-
- name: Cache pip
95-
uses: actions/cache@v4
96-
env:
97-
cache-name: cache-pip
98-
with:
99-
path: ~/.cache/pip
100-
key: ${{ runner.os }}-${{ env.cache-name }}-${{ env.PYTHON_VER }}-${{ matrix.django-ver }}
101-
restore-keys: |
102-
${{ runner.os }}-${{ env.cache-name }}-${{ env.PYTHON_VER }}-
103-
- name: Install Python dependencies
104-
run: |
105-
pip install "Django${{ matrix.django-ver }}"
106-
pip install "requests>=2.24.0,<=2.29.0"
107-
- name: Set up Node.js ${{ env.NODE_VER }}
108-
uses: actions/setup-node@v4
109-
with:
110-
node-version: ${{ env.NODE_VER }}
111-
- name: Cache npm
112-
uses: actions/cache@v4
113-
env:
114-
cache-name: cache-npm
115-
with:
116-
path: ~/.npm
117-
key: ${{ runner.os }}-${{ env.cache-name }}-${{ env.NODE_VER }}-${{ matrix.mjml-ver }}
118-
restore-keys: |
119-
${{ runner.os }}-${{ env.cache-name }}-${{ env.NODE_VER }}-
120-
- name: Install Node dependencies
121-
run: |
122-
npm cache verify
123-
npm install -g [email protected]
124-
npm install mjml@${{ matrix.mjml-ver }}
125-
- name: Show info
126-
run: |
127-
node_modules/.bin/mjml --version
128-
- name: Test
129-
run: |
130-
python tools.py test
131-
test-py-3-8:
9+
test-py-3-9:
13210
runs-on: ubuntu-latest
13311
env:
134-
PYTHON_VER: 3.8
135-
NODE_VER: 20.x
12+
PYTHON_VER: 3.9
13+
NODE_VER: 22.x
13614
strategy:
13715
matrix:
13816
django-ver: [ '<2.3', '<3.1', '<3.2', '<3.3', '<4.1', '<4.2', '<4.3' ]
139-
mjml-ver: [ '4.7.1', '4.8.2', '4.9.3', '4.10.4', '4.11.0', '4.12.0', '4.13.0', '4.14.1', '4.15.2' ]
140-
tcp-server-ver: [ 'v1.2' ]
17+
mjml-ver: [ '4.14.1', '4.15.3', '4.16.1', '4.17.2' ]
18+
tcp-server-ver: [ 'v1.3' ]
14119
fail-fast: false
14220
steps:
14321
- name: Checkout
@@ -189,16 +67,16 @@ jobs:
18967
- name: Test
19068
run: |
19169
python tools.py test
192-
test-py-3-9:
70+
test-py-3-10:
19371
runs-on: ubuntu-latest
19472
env:
195-
PYTHON_VER: 3.9
196-
NODE_VER: 20.x
73+
PYTHON_VER: '3.10'
74+
NODE_VER: 22.x
19775
strategy:
19876
matrix:
199-
django-ver: [ '<2.3', '<3.1', '<3.2', '<3.3', '<4.1', '<4.2', '<4.3' ]
200-
mjml-ver: [ '4.7.1', '4.8.2', '4.9.3', '4.10.4', '4.11.0', '4.12.0', '4.13.0', '4.14.1', '4.15.2' ]
201-
tcp-server-ver: [ 'v1.2' ]
77+
django-ver: [ '<3.3', '<4.1', '<4.2', '<4.3', '<5.2', '<5.3' ]
78+
mjml-ver: [ '4.14.1', '4.15.3', '4.16.1', '4.17.2' ]
79+
tcp-server-ver: [ 'v1.3' ]
20280
fail-fast: false
20381
steps:
20482
- name: Checkout
@@ -250,16 +128,16 @@ jobs:
250128
- name: Test
251129
run: |
252130
python tools.py test
253-
test-py-3-10:
131+
test-py-3-11:
254132
runs-on: ubuntu-latest
255133
env:
256-
PYTHON_VER: '3.10'
257-
NODE_VER: 20.x
134+
PYTHON_VER: '3.11'
135+
NODE_VER: 22.x
258136
strategy:
259137
matrix:
260-
django-ver: [ '<3.3', '<4.1', '<4.2', '<4.3', '<5.2', '<5.3' ]
261-
mjml-ver: [ '4.7.1', '4.8.2', '4.9.3', '4.10.4', '4.11.0', '4.12.0', '4.13.0', '4.14.1', '4.15.2' ]
262-
tcp-server-ver: [ 'v1.2' ]
138+
django-ver: [ '<4.2', '<4.3', '<5.2', '<5.3' ]
139+
mjml-ver: [ '4.14.1', '4.15.3', '4.16.1', '4.17.2' ]
140+
tcp-server-ver: [ 'v1.3' ]
263141
fail-fast: false
264142
steps:
265143
- name: Checkout
@@ -311,16 +189,16 @@ jobs:
311189
- name: Test
312190
run: |
313191
python tools.py test
314-
test-py-3-11:
192+
test-py-3-12:
315193
runs-on: ubuntu-latest
316194
env:
317-
PYTHON_VER: '3.11'
318-
NODE_VER: 20.x
195+
PYTHON_VER: '3.12'
196+
NODE_VER: 22.x
319197
strategy:
320198
matrix:
321-
django-ver: [ '<4.2', '<4.3', '<5.2', '<5.3' ]
322-
mjml-ver: [ '4.7.1', '4.8.2', '4.9.3', '4.10.4', '4.11.0', '4.12.0', '4.13.0', '4.14.1', '4.15.2' ]
323-
tcp-server-ver: [ 'v1.2' ]
199+
django-ver: [ '<4.3', '<5.2', '<5.3', '<6.1' ]
200+
mjml-ver: [ '4.14.1', '4.15.3', '4.16.1', '4.17.2' ]
201+
tcp-server-ver: [ 'v1.3' ]
324202
fail-fast: false
325203
steps:
326204
- name: Checkout
@@ -372,16 +250,16 @@ jobs:
372250
- name: Test
373251
run: |
374252
python tools.py test
375-
test-py-3-12:
253+
test-py-3-13:
376254
runs-on: ubuntu-latest
377255
env:
378-
PYTHON_VER: '3.12'
379-
NODE_VER: 20.x
256+
PYTHON_VER: '3.13'
257+
NODE_VER: 22.x
380258
strategy:
381259
matrix:
382-
django-ver: [ '<4.3', '<5.2', '<5.3' ]
383-
mjml-ver: [ '4.7.1', '4.8.2', '4.9.3', '4.10.4', '4.11.0', '4.12.0', '4.13.0', '4.14.1', '4.15.2' ]
384-
tcp-server-ver: [ 'v1.2' ]
260+
django-ver: [ '<5.2', '<5.3', '<6.1' ]
261+
mjml-ver: [ '4.14.1', '4.15.3', '4.16.1', '4.17.2' ]
262+
tcp-server-ver: [ 'v1.3' ]
385263
fail-fast: false
386264
steps:
387265
- name: Checkout
@@ -433,16 +311,16 @@ jobs:
433311
- name: Test
434312
run: |
435313
python tools.py test
436-
test-py-3-13:
314+
test-py-3-14:
437315
runs-on: ubuntu-latest
438316
env:
439-
PYTHON_VER: '3.13'
440-
NODE_VER: 20.x
317+
PYTHON_VER: '3.14'
318+
NODE_VER: 22.x
441319
strategy:
442320
matrix:
443-
django-ver: [ '<5.2', '<5.3' ]
444-
mjml-ver: [ '4.7.1', '4.8.2', '4.9.3', '4.10.4', '4.11.0', '4.12.0', '4.13.0', '4.14.1', '4.15.2' ]
445-
tcp-server-ver: [ 'v1.2' ]
321+
django-ver: [ '<5.3', '<6.1' ]
322+
mjml-ver: [ '4.14.1', '4.15.3', '4.16.1', '4.17.2' ]
323+
tcp-server-ver: [ 'v1.3' ]
446324
fail-fast: false
447325
steps:
448326
- name: Checkout

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
1.5 (2025-12-08)
2+
================
3+
* Added supporting Django 6.0
4+
* Removed Python 3.6, 3.7 and 3.8 from tests
5+
* Added Python 3.14 in tests
6+
* Removed MJML older than 4.14.1 from tests
7+
* Added MJML 4.16.1 and 4.17.2 in tests
8+
9+
110
1.4 (2025-04-06)
211
================
312
* Added supporting Django 5.2

README.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ Installation
3131
Requirements:
3232
^^^^^^^^^^^^^
3333

34-
* ``Django`` from 2.2 to 5.2
34+
* ``Django`` from 2.2 to 6.0
3535
* ``requests`` from 2.24.0 (only if you are going to use API HTTP-server for rendering)
36-
* ``mjml`` from 4.7.1 to 4.15.2 (older version may work, but not tested anymore)
36+
* ``mjml`` from 4.14.1 to 4.17.2 (older version may work, but not tested anymore)
3737

3838
**\1\. Install** ``mjml``.
3939

mjml/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import django
22

3-
__version__ = '1.4'
3+
__version__ = '1.5'
44

55
if django.VERSION < (3, 2):
66
default_app_config = 'mjml.apps.MJMLConfig'

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
wheel==0.37.1
22
twine==3.8.0
33
coverage==6.2
4-
django>=2.2,<5.3
4+
django>=2.2,<6.1
55
requests>=2.24.0,<2.29.0

setup.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
include_package_data=True,
1717
zip_safe=False, # because include static
1818
platforms=['OS Independent'],
19-
python_requires='>=3.6',
19+
python_requires='>=3.9',
2020
install_requires=[
21-
'django >=2.2,<5.3',
21+
'django >=2.2,<6.1',
2222
],
2323
extras_require={
2424
'requests': [
@@ -33,14 +33,12 @@
3333
'Environment :: Web Environment',
3434
'Programming Language :: Python',
3535
'Programming Language :: Python :: 3',
36-
'Programming Language :: Python :: 3.6',
37-
'Programming Language :: Python :: 3.7',
38-
'Programming Language :: Python :: 3.8',
3936
'Programming Language :: Python :: 3.9',
4037
'Programming Language :: Python :: 3.10',
4138
'Programming Language :: Python :: 3.11',
4239
'Programming Language :: Python :: 3.12',
4340
'Programming Language :: Python :: 3.13',
41+
'Programming Language :: Python :: 3.14',
4442
'Intended Audience :: Developers',
4543
'Topic :: Software Development :: Libraries',
4644
'Topic :: Software Development :: Libraries :: Application Frameworks',

0 commit comments

Comments
 (0)