Skip to content

Commit

Permalink
Improve locked dist URL to minimize conflicts
Browse files Browse the repository at this point in the history
Instead of appending the package's pretty version to the initial dist URL, we are appending a SHA1 hash of the package's unique name (`<name>-<version>`).

This will prevent duplicate cache keys between a plugin and its add-ons that may share the same version.

Removed:
- Variable `$package_version` since usage is limited to `switch` statement.
- Placeholder `%version%` since its an unused concept and confusing with usage of unique name instead of only the version.
  • Loading branch information
mcaskill committed Sep 12, 2020
1 parent 198bdf8 commit 1ce96bd
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions Installer.php
Original file line number Diff line number Diff line change
Expand Up @@ -79,40 +79,38 @@ public function getDownloadUrl( PackageEvent $event ) {
$package = $this->getPackageFromOperation( $event->getOperation() );
$plugin = false;
$package_name = $package->getName();
$package_version = $package->getPrettyVersion();

switch ( $package_name ) {

case 'junaidbhura/advanced-custom-fields-pro':
$plugin = new Plugins\AcfPro( $package_version );
$plugin = new Plugins\AcfPro( $package->getPrettyVersion() );
break;

case 'junaidbhura/polylang-pro':
$plugin = new Plugins\PolylangPro( $package_version );
$plugin = new Plugins\PolylangPro( $package->getPrettyVersion() );
break;

case 'junaidbhura/wp-all-import-pro':
case 'junaidbhura/wp-all-export-pro':
$plugin = new Plugins\WpAiPro( $package_version, str_replace( 'junaidbhura/', '', $package_name ) );
$plugin = new Plugins\WpAiPro( $package->getPrettyVersion(), str_replace( 'junaidbhura/', '', $package_name ) );
break;

default:
if ( 0 === strpos( $package_name, 'junaidbhura/gravityforms' ) ) {
$plugin = new Plugins\GravityForms( $package_version, str_replace( 'junaidbhura/', '', $package_name ) );
$plugin = new Plugins\GravityForms( $package->getPrettyVersion(), str_replace( 'junaidbhura/', '', $package_name ) );
} elseif ( 0 === strpos( $package_name, 'junaidbhura/wpai-' ) ) {
$plugin = new Plugins\WpAiPro( $package_version, str_replace( 'junaidbhura/', '', $package_name ) );
$plugin = new Plugins\WpAiPro( $package->getPrettyVersion(), str_replace( 'junaidbhura/', '', $package_name ) );
}

}

if ( ! empty( $plugin ) ) {
$this->downloadUrl = $plugin->getDownloadUrl();
$package_url = $package->getDistUrl();
$package_key = sha1( $package->getUniqueName() );

$package_url = $package->getDistUrl();
if ( false !== strpos( $package_url, '%version%' ) ) {
$package->setDistUrl( str_replace( '%version%', $package_version, $package_url ) );
} elseif ( false === strpos( $package_url, $package_version ) ) {
$package->setDistUrl( $package_url . '#v' . $package_version );
if ( false === strpos( $package_url, $package_key ) ) {
$package->setDistUrl( $package_url . '#' . $package_key );
}
}
}
Expand Down

0 comments on commit 1ce96bd

Please sign in to comment.