cedaro / satispress

Expose installed WordPress plugins and themes as Composer packages.
500 stars 48 forks source link

Fatal error after update #153

Closed koengabriels closed 3 years ago

koengabriels commented 3 years ago

Hi, I cloned our production satispress site to test the latest version. In the past, we were doing manual installs and upgrades but I decided to use composer this time. Our composer file looks like this:

{
  "name": "appsaloon/satispress",
  "description": "Home of our custom and premium 3rd party plugins",
  "type": "project",
  "require": {
    "cedaro/satispress": "^1.0"
  },
  "authors": [
    {
      "name": "AppSaloon",
      "email": "info@appsaloon.be"
    }
  ],
  "repositories": [
    {
      "type": "composer",
      "url": "https://wpackagist.org"
    }
  ],
  "extra": {
    "installer-paths": {
      "wp-content/plugins/{$name}/": [
        "type:wordpress-plugin"
      ]
    }
  }
}

After activating the plugin I got the following error:

Warning: scandir(/sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/comment-redirect/comment-redirect/): failed to open dir: No such file or directory in /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/PackageType/BasePackage.php on line 173

Warning: scandir(): (errno 2): No such file or directory in /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/PackageType/BasePackage.php on line 173

Warning: array_diff(): Expected parameter 1 to be an array, bool given in /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/PackageType/BasePackage.php on line 174

Fatal error: Uncaught TypeError: array_values() expects parameter 1 to be array, null given in /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/PackageType/BasePackage.php:174 Stack trace: #0 /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/PackageType/BasePackage.php(174): array_values(NULL) #1 /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/Archiver.php(93): SatisPress\PackageType\BasePackage->get_files(Array) #2 /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/ReleaseManager.php(93): SatisPress\Archiver->archive_from_source(Object(SatisPress\PackageType\BasePackage), '1.1.3') #3 /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/Transformer/ComposerRepositoryTransformer.php(124): SatisPress\ReleaseManager->archive(Object(SatisPress\Release)) #4 /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/Transformer/ComposerReposit in /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/PackageType/BasePackage.php on line 174
There has been a critical error on this website.

Any help would be greatly appreciated as we would like to start using the latest version as we are currently using 0.5.0 our workflow.

bradyvercher commented 3 years ago

It looks like SatisPress is searching for a plugin in /wp-content/plugins/comment-redirect/comment-redirect/ (notice the nested directory). You might try removing that plugin from the SatisPress repo to see if everything else works and try to figure out why it's nested like that.

koengabriels commented 3 years ago

Hi Brady,

thanks for the quick response, that was indeed the issue. I only got around to checking it further today, after removing that plugin I do however get another Fatal Error:

Fatal error: Uncaught TypeError: Argument 1 passed to SatisPress\Integration\EnvatoMarket::get_bearer_args() must be of the type int, string given, called in /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/Integration/EnvatoMarket.php on line 54 and defined in /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/Integration/EnvatoMarket.php:73 Stack trace: #0 /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/Integration/EnvatoMarket.php(54): SatisPress\Integration\EnvatoMarket->get_bearer_args('3357410') #1 /sites/satispresstest.web-008.appsaloon.be/files/wp-includes/class-wp-hook.php(289): SatisPress\Integration\EnvatoMarket->filter_package_download_url('') #2 /sites/satispresstest.web-008.appsaloon.be/files/wp-includes/plugin.php(212): WP_Hook->apply_filters('https://satispr...', Array) #3 /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/Archiver.php(197): apply_filters('satispress_pack...' in /sites/satispresstest.web-008.appsaloon.be/files/wp-content/plugins/satispress/src/Integration/EnvatoMarket.php on line 73

Thanks for you help, greatly appreciated!

bradyvercher commented 3 years ago

Is that nested plugin issue something that needs to be fixed in SatisPress? Wasn't sure if it got caused by SatisPress or not.

That new error looks like a bug that I'll need to push a fix for.

koengabriels commented 3 years ago

I can't say if that nested plugin issue is a bug in SatisPress because it definitely wouldn't be the first WP plugin that is packaged incorrectly by the creator.

Thanks for your response and work on this project