diff --git a/buildpack/core/runtime.py b/buildpack/core/runtime.py index 99396f049..c6e047f83 100644 --- a/buildpack/core/runtime.py +++ b/buildpack/core/runtime.py @@ -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 diff --git a/buildpack/stage.py b/buildpack/stage.py index d1ce2f442..2f37be179 100755 --- a/buildpack/stage.py +++ b/buildpack/stage.py @@ -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).", diff --git a/lib/m2ee/config.py b/lib/m2ee/config.py index 46e44347f..9483f922d 100644 --- a/lib/m2ee/config.py +++ b/lib/m2ee/config.py @@ -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 " diff --git a/tests/unit/test_deprecations.py b/tests/unit/test_deprecations.py index 03179d214..e6fad55dc 100644 --- a/tests/unit/test_deprecations.py +++ b/tests/unit/test_deprecations.py @@ -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): @@ -22,8 +23,16 @@ 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): @@ -31,9 +40,6 @@ 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")) @@ -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"))