Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions buildpack/core/runtime.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,25 +33,26 @@ def is_version_implemented(version):
return bool(version.major >= 6)


def is_version_extended_supported(version):
# See https://docs.mendix.com/support/#extended-support
return bool(version.major == 8 and version.minor == 24)


def is_version_supported(version):
# Support for the latest three major versions:
# https://docs.mendix.com/releasenotes/studio-pro/lts-mts
return bool(version.major >= 7)
return bool(version.major >= 9)


def is_version_maintained(version):
# LTS / MTS versions: https://docs.mendix.com/releasenotes/studio-pro/lts-mts
if version.major == 8 and version.minor == 18:
if version.major == 8 and version.minor == 24:
return True
if version.major == 9 and version.minor == 24:
return True
if version.major == 10 and version.minor == 6:
return True
if version.major == 10 and version.minor == 12:
return True
if version.major == 10 and version.minor == 18:
if version.major == 10 and version.minor == 24:
return True
if version.major == 10 and version.minor == 21:
if version.major == 11:
return True
return False

Expand Down
10 changes: 9 additions & 1 deletion buildpack/stage.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,15 @@ def preflight_check(version):
raise NotImplementedError(
"Mendix [{version.major}] is not supported by this buildpack"
)
if not runtime.is_version_supported(version):
if runtime.is_version_extended_supported(version):
logging.warning(
"Mendix [%s] is in Extended Support "
"(https://docs.mendix.com/support/#extended-support)."
"Please use a supported Mendix version "
"(https://docs.mendix.com/releasenotes/studio-pro/lts-mts).",
version.major,
)
elif not runtime.is_version_supported(version):
logging.warning(
"Mendix [%s] is end-of-support. Please use a supported Mendix version "
"(https://docs.mendix.com/releasenotes/studio-pro/lts-mts).",
Expand Down
3 changes: 2 additions & 1 deletion lib/m2ee/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -465,7 +465,8 @@ def get_default_dotm2ee_directory(self):

logger.debug(traceback.format_exc())
logger.critical(
"Directory %s does not exist, and cannot be " "created!"
"Directory %s does not exist, and cannot be " "created!",
dotm2ee
)
logger.critical(
"If you do not want to use .m2ee in your home "
Expand Down
30 changes: 18 additions & 12 deletions tests/unit/test_deprecations.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@

# Current supported / maintained versions
# (https://docs.mendix.com/releasenotes/studio-pro/lts-mts):
# - Mendix 7: 7.23.x (LTS)
# - Mendix 8: 8.18.x (LTS)
# - Mendix 9: 9.6.x (MTS), 9.12.x (MTS), 9.18.x (MTS), 9.24.x (LTS)
# - Mendix 8: 8.18.x (Extended Support until July 2026)
# - Mendix 9: 9.24.x (LTS)
# - Mendix 10: 10.24.x (LTS)
# - Mendix 11: 11.x until 11.6 (MTS) is released (December 2025)


class TestCaseMxImplemented(TestCase):
Expand All @@ -22,18 +23,23 @@ class TestCaseMxSupported(TestCase):
def test_mx6_not_supported(self):
assert not runtime.is_version_supported(MXVersion("6.2"))

def test_mx7_supported(self):
assert runtime.is_version_supported(MXVersion("7.16"))
def test_mx11_supported(self):
assert runtime.is_version_supported(MXVersion("11.6"))


class TestCaseMxExtendedSupported(TestCase):
def test_mx7_not_extended_supported(self):
assert not runtime.is_version_extended_supported(MXVersion("7.2"))

def test_mx8_extended_supported(self):
assert runtime.is_version_extended_supported(MXVersion("8.24"))


class TestCaseMxMaintained(TestCase):
def test_mx7_not_maintained(self):
assert not runtime.is_version_maintained(MXVersion("7.23.1"))
assert not runtime.is_version_maintained(MXVersion("7.16"))

def test_mx8_maintained(self):
assert runtime.is_version_maintained(MXVersion("8.18.1"))

def test_mx8_not_maintained(self):
assert not runtime.is_version_maintained(MXVersion("8.17"))

Expand All @@ -46,10 +52,10 @@ def test_mx9_not_maintained(self):
assert not runtime.is_version_maintained(MXVersion("9.12.1"))

def test_mx10_maintained(self):
assert runtime.is_version_maintained(MXVersion("10.6.1"))
assert runtime.is_version_maintained(MXVersion("10.12.1"))
assert runtime.is_version_maintained(MXVersion("10.18.1"))
assert runtime.is_version_maintained(MXVersion("10.21.1"))
assert runtime.is_version_maintained(MXVersion("10.24.1"))

def test_mx10_not_maintained(self):
assert not runtime.is_version_maintained(MXVersion("10.5.1"))

def test_mx11_maintained(self):
assert runtime.is_version_maintained(MXVersion("11.5.1"))
Loading