Skip to content

Commit

Permalink
Merge pull request #28 from creative-commoners/pulls/1.0/semver
Browse files Browse the repository at this point in the history
 API Remove Packagist API and use Composer to determine recommended andd latest updates
  • Loading branch information
NightJar committed May 23, 2018
2 parents 5800078 + 273aa60 commit 3ce141a
Show file tree
Hide file tree
Showing 12 changed files with 491 additions and 404 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Expand Up @@ -14,7 +14,7 @@ matrix:
env: DB=PGSQL CORE_RELEASE=3.6
- php: 7.1
env: DB=PGSQL CORE_RELEASE=3.6
- php: 7.2
- php: 7.1
env: DB=MYSQL CORE_RELEASE=3

before_script:
Expand Down
4 changes: 4 additions & 0 deletions _config/extensions.yml
Expand Up @@ -4,3 +4,7 @@ Name: updatecheckerextensions
Package:
extensions:
- BringYourOwnIdeas\UpdateChecker\Extensions\ComposerUpdateExtension

BringYourOwnIdeas\Maintenance\Util\ComposerLoader:
extensions:
- BringYourOwnIdeas\UpdateChecker\Extensions\ComposerLoaderExtension
8 changes: 4 additions & 4 deletions composer.json
Expand Up @@ -31,11 +31,11 @@
],
"minimum-stability": "dev",
"require": {
"php": ">=5.6.0",
"silverstripe/framework": "^3.1",
"php": "^5.6 || ~7.0.0 || ~7.1.0",
"composer/composer": "^1",
"silverstripe/framework": "^3.2",
"symbiote/silverstripe-queuedjobs": "^2.8",
"knplabs/packagist-api": "^1.1",
"friendsofsilverstripe/silverstripe-maintenance": "^0.3"
"bringyourownideas/silverstripe-maintenance": "^1@dev"
},
"require-dev": {
"phpunit/phpunit": "^5.7",
Expand Down
47 changes: 47 additions & 0 deletions src/Extensions/ComposerLoaderExtension.php
@@ -0,0 +1,47 @@
<?php

namespace BringYourOwnIdeas\UpdateChecker\Extensions;

use Composer\Composer;
use Composer\Factory;
use Composer\IO\NullIO;
use Extension;

class ComposerLoaderExtension extends Extension
{
/**
* @var Composer
*/
protected $composer;

/**
* @param Composer $composer
* @return $this
*/
public function setComposer(Composer $composer)
{
$this->composer = $composer;
return $this;
}

/**
* @return Composer
*/
public function getComposer()
{
return $this->composer;
}

/**
* Builds an instance of Composer
*/
public function onAfterBuild()
{
$originalDir = getcwd();
chdir(BASE_PATH);
/** @var Composer $composer */
$composer = Factory::create(new NullIO());
$this->setComposer($composer);
chdir($originalDir);
}
}
29 changes: 23 additions & 6 deletions src/Extensions/ComposerUpdateExtension.php
Expand Up @@ -2,7 +2,6 @@

namespace BringYourOwnIdeas\UpdateChecker\Extensions;

use CheckComposerUpdatesJob;
use DataExtension;
use Injector;
use QueuedJobService;
Expand All @@ -21,21 +20,39 @@ class ComposerUpdateExtension extends DataExtension

private static $db = [
'VersionHash' => 'Varchar',
'LatestVersion' => 'Varchar',
'VersionConstraint' => 'Varchar(50)',
'AvailableVersion' => 'Varchar(50)',
'AvailableHash' => 'Varchar(50)',
'LatestVersion' => 'Varchar(50)',
'LatestHash' => 'Varchar(50)',
];

private static $summary_fields = [
'LatestVersion',
'AvailableVersion' => 'Available',
'LatestVersion' => 'Latest',
];

/**
* Automatically schedule a self update job on dev/build
*/
public function requireDefaultRecords()
{
Injector::inst()
->get(QueuedJobService::class)
->queueJob(new CheckComposerUpdatesJob());
$job = Injector::inst()->create($this->getJobName());
Injector::inst()->get(QueuedJobService::class)->queueJob($job);
}

/**
* If the available version is the same as the current version then return nothing, otherwise show the latest
* available version
*
* @return string
*/
public function getAvailableVersion()
{
if ($this->owner->getField('Version') === $this->owner->getField('AvailableVersion')) {
return '';
}
return $this->owner->getField('AvailableVersion');
}

/**
Expand Down

0 comments on commit 3ce141a

Please sign in to comment.