Skip to content

Commit d5773a3

Browse files
committed
Fix: Deprecated vierbergenlars/php-semver -> composer/semver
1 parent 9b4e9b5 commit d5773a3

File tree

3 files changed

+29
-10
lines changed

3 files changed

+29
-10
lines changed

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"illuminate/support": "^9.35|^10.1",
1818
"ratchet/pawl": "^0.4.1",
1919
"symfony/process": "^5.4|^6.0",
20-
"vierbergenlars/php-semver": "^2.1|^3.0"
20+
"composer/semver": "^3.0"
2121
},
2222
"suggest": {
2323
"ext-yaml": "YAML extension is used to read or generate YAML from PHP K8s internal classes."

src/Traits/Cluster/ChecksClusterVersion.php

+14-9
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,29 @@
22

33
namespace RenokiCo\PhpK8s\Traits\Cluster;
44

5+
use Composer\Semver\Comparator;
6+
use Composer\Semver\VersionParser;
57
use GuzzleHttp\Exception\ClientException;
8+
use GuzzleHttp\Exception\GuzzleException;
69
use RenokiCo\PhpK8s\Exceptions\KubernetesAPIException;
7-
use vierbergenlars\SemVer\version as Semver;
810

911
trait ChecksClusterVersion
1012
{
1113
/**
1214
* The Kubernetes cluster version.
13-
*
14-
* @var \vierbergenlars\SemVer\version|null
1515
*/
16-
protected $kubernetesVersion;
16+
protected string $kubernetesVersion;
1717

1818
/**
1919
* Load the cluster version.
2020
*
2121
* @return void
2222
*
23-
* @throws \RenokiCo\PhpK8s\Exceptions\KubernetesAPIException
23+
* @throws KubernetesAPIException|GuzzleException
2424
*/
2525
protected function loadClusterVersion(): void
2626
{
27-
if ($this->kubernetesVersion) {
27+
if (isset($this->kubernetesVersion)) {
2828
return;
2929
}
3030

@@ -44,7 +44,8 @@ protected function loadClusterVersion(): void
4444

4545
$json = @json_decode($response->getBody(), true);
4646

47-
$this->kubernetesVersion = new Semver($json['gitVersion']);
47+
$parser = new VersionParser();
48+
$this->kubernetesVersion = $parser->normalize($json['gitVersion']);
4849
}
4950

5051
/**
@@ -53,12 +54,14 @@ protected function loadClusterVersion(): void
5354
*
5455
* @param string $kubernetesVersion
5556
* @return bool
57+
*
58+
* @throws KubernetesAPIException|GuzzleException
5659
*/
5760
public function newerThan(string $kubernetesVersion): bool
5861
{
5962
$this->loadClusterVersion();
6063

61-
return Semver::gte(
64+
return Comparator::greaterThanOrEqualTo(
6265
$this->kubernetesVersion, $kubernetesVersion
6366
);
6467
}
@@ -69,12 +72,14 @@ public function newerThan(string $kubernetesVersion): bool
6972
*
7073
* @param string $kubernetesVersion
7174
* @return bool
75+
*
76+
* @throws KubernetesAPIException|GuzzleException
7277
*/
7378
public function olderThan(string $kubernetesVersion): bool
7479
{
7580
$this->loadClusterVersion();
7681

77-
return Semver::lt(
82+
return Comparator::lessThan(
7883
$this->kubernetesVersion, $kubernetesVersion
7984
);
8085
}

tests/ChecksClusterVersionTest.php

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace RenokiCo\PhpK8s\Test;
4+
5+
class ChecksClusterVersionTest extends TestCase
6+
{
7+
public function test_check_cluster_version(): void
8+
{
9+
$this->assertFalse($this->cluster->olderThan('1.18.0'));
10+
$this->assertTrue($this->cluster->newerThan('1.18.0'));
11+
$this->assertFalse($this->cluster->newerThan('2.0.0'));
12+
$this->assertTrue($this->cluster->olderThan('2.0.0'));
13+
}
14+
}

0 commit comments

Comments
 (0)