From 0ba31af0842d975b3bdd62df0d630c99a5f9ffac Mon Sep 17 00:00:00 2001
From: Sven Reichel
Date: Sun, 19 Jan 2025 05:04:37 +0100
Subject: [PATCH 1/3] Changed `getOpenMageVersion()`
---
app/Mage.php | 73 +--
.../default/template/page/footer.phtml | 4 +-
.../openmage/template/page/header.phtml | 2 +-
.../default/template/page/html/footer.phtml | 2 +-
composer.json | 2 +-
composer.lock | 592 +-----------------
6 files changed, 48 insertions(+), 627 deletions(-)
diff --git a/app/Mage.php b/app/Mage.php
index ec7df4782f2..f6a9abb4e94 100644
--- a/app/Mage.php
+++ b/app/Mage.php
@@ -14,6 +14,8 @@
* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
+use Composer\InstalledVersions;
+
define('DS', DIRECTORY_SEPARATOR);
define('PS', PATH_SEPARATOR);
define('BP', dirname(__DIR__));
@@ -178,64 +180,65 @@ public static function getVersionInfo()
* @link https://openmage.github.io/supported-versions.html
* @link https://semver.org/
*/
- public static function getOpenMageVersion(): string
+ public static function getOpenMageVersion(bool $withHas = false): string
{
- $info = self::getOpenMageVersionInfo();
- $versionString = "{$info['major']}.{$info['minor']}.{$info['patch']}";
-
- if ($info['stability'] && $info['number']) {
- return "{$versionString}-{$info['stability']}.{$info['number']}";
- }
- if ($info['stability']) {
- return "{$versionString}-{$info['stability']}";
+ $versionfromGit = self::getVersionFromGit($withHas);
+ if ($versionfromGit) {
+ return $versionfromGit;
}
- if ($info['number']) {
- return "{$versionString}-{$info['number']}";
+
+ $versionfromComposer = self::getVersionFromComposer();
+ if ($versionfromComposer) {
+ return $versionfromComposer;
}
- return $versionString;
+ return '';
}
/**
* Gets the detailed OpenMage version information
* @link https://openmage.github.io/supported-versions.html
* @link https://semver.org/
+ * @deprecated
*/
public static function getOpenMageVersionInfo(): array
{
- /**
- * This code construct is to make merging for forward porting of changes easier.
- * By having the version numbers of different branches in own lines, they do not provoke a merge conflict
- * also as releases are usually done together, this could in theory be done at once.
- * The major Version then needs to be only changed once per branch.
- */
- if (self::getOpenMageMajorVersion() === 20) {
- return [
- 'major' => '20',
- 'minor' => '12',
- 'patch' => '0',
- 'stability' => '', // beta,alpha,rc
- 'number' => '', // 1,2,3,0.3.7,x.7.z.92 @see https://semver.org/#spec-item-9
- ];
- }
-
- return [
- 'major' => '19',
- 'minor' => '5',
- 'patch' => '3',
- 'stability' => '', // beta,alpha,rc
- 'number' => '', // 1,2,3,0.3.7,x.7.z.92 @see https://semver.org/#spec-item-9
- ];
+ return explode('.', ltrim(self::getOpenMageVersion(), 'v'));
}
/**
* @return int<19,20>
+ * @deprecated
*/
public static function getOpenMageMajorVersion(): int
{
return 20;
}
+ public static function getVersionFromComposer(): ?string
+ {
+ if (!InstalledVersions::isInstalled('openmage/magento-lts')) {
+ return null;
+ }
+
+ return InstalledVersions::getVersion('openmage/magento-lts');
+ }
+
+ public static function getVersionFromGit(bool $withHas = true): ?string
+ {
+ if (!function_exists('exec')) {
+ return null;
+ }
+
+ $commitTag = trim(exec('git describe --tags --abbrev=0'));
+ if (!$withHas) {
+ return $commitTag;
+ }
+
+ $commitHash = trim(exec('git log --pretty="%h" -n1 HEAD'));
+ return sprintf('%s (%s)', $commitTag, $commitHash);
+ }
+
/**
* Get current Magento edition
*
diff --git a/app/design/adminhtml/default/default/template/page/footer.phtml b/app/design/adminhtml/default/default/template/page/footer.phtml
index e0aced74b9d..e08e736dfea 100644
--- a/app/design/adminhtml/default/default/template/page/footer.phtml
+++ b/app/design/adminhtml/default/default/template/page/footer.phtml
@@ -22,7 +22,9 @@
__('OpenMage Project') ?> |
__('Report Issues') ?>
-__('OpenMage %s', Mage::getOpenMageVersion()) ?>
+
+ __('OpenMage %s', Mage::getOpenMageVersion(true)) ?>
+