Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dependency psalm/plugin-mockery to v1 #36

Open
wants to merge 1 commit into
base: 2.10.x
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Nov 25, 2022

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
psalm/plugin-mockery ^0.11.0 -> ^1.0.0 age adoption passing confidence

Release Notes

psalm/psalm-plugin-mockery (psalm/plugin-mockery)

v1.1.0

Compare Source

What's Changed

Full Changelog: psalm/psalm-plugin-mockery@1.0.0...1.1.0

v1.0.0

Compare Source

What's Changed

Full Changelog: psalm/psalm-plugin-mockery@0.11.0...1.0.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

Read more information about the use of Renovate Bot within Laminas.

@renovate renovate bot added the renovate label Nov 25, 2022
@Ocramius
Copy link
Member

I tried writing a patch to get rid of mockery and failed.

The internal components of mezzio/mezzio-tooling are final and have no interfaces.

I was going down the rabbit hole of extracting all interfaces, but I don't think I'd want to invest more time in it:

diff --git a/src/Module/DeregisterCommand.php b/src/Module/DeregisterCommand.php
index 92190ca..971a239 100644
--- a/src/Module/DeregisterCommand.php
+++ b/src/Module/DeregisterCommand.php
@@ -8,6 +8,7 @@ use Mezzio\Tooling\Composer\ComposerPackageFactoryInterface;
 use Mezzio\Tooling\Composer\ComposerPackageInterface;
 use Mezzio\Tooling\Composer\ComposerProcessFactoryInterface;
 use Mezzio\Tooling\ConfigInjector\ConfigAggregatorInjector;
+use Mezzio\Tooling\ConfigInjector\InjectorInterface;
 use Symfony\Component\Console\Command\Command;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
@@ -37,14 +38,18 @@ final class DeregisterCommand extends Command
 
     private ComposerProcessFactoryInterface $processFactory;
 
+    private InjectorInterface $injector;
+
     public function __construct(
         string $projectRoot,
         ComposerPackageFactoryInterface $packageFactory,
-        ComposerProcessFactoryInterface $processFactory
+        ComposerProcessFactoryInterface $processFactory,
+        ?InjectorInterface $configInjector = null
     ) {
         $this->projectRoot    = $projectRoot;
         $this->package        = $packageFactory->loadPackage($projectRoot);
         $this->processFactory = $processFactory;
+        $this->injector       = $configInjector ?? new ConfigAggregatorInjector($this->projectRoot);
 
         parent::__construct();
     }
@@ -69,12 +74,11 @@ final class DeregisterCommand extends Command
         $module   = $input->getArgument('module');
         $composer = $input->getOption('composer') ?: 'composer';
 
-        $injector       = new ConfigAggregatorInjector($this->projectRoot);
         $configProvider = sprintf('%s\ConfigProvider', $module);
         assert($configProvider !== '');
 
-        if ($injector->isRegistered($configProvider)) {
-            $injector->remove($configProvider);
+        if ($this->injector->isRegistered($configProvider)) {
+            $this->injector->remove($configProvider);
         }
 
         // If no updates are made to autoloading, no need to update the autoloader.
diff --git a/src/Module/RegisterCommand.php b/src/Module/RegisterCommand.php
index 61e45d1..9371499 100644
--- a/src/Module/RegisterCommand.php
+++ b/src/Module/RegisterCommand.php
@@ -44,15 +44,18 @@ final class RegisterCommand extends Command
     private string $projectRoot;
 
     private ComposerProcessFactoryInterface $processFactory;
+    private InjectorInterface $injector;
 
     public function __construct(
         string $projectRoot,
         ComposerPackageFactoryInterface $packageFactory,
-        ComposerProcessFactoryInterface $processFactory
+        ComposerProcessFactoryInterface $processFactory,
+        ?InjectorInterface $configInjector = null
     ) {
         $this->projectRoot    = $projectRoot;
         $this->package        = $packageFactory->loadPackage($projectRoot);
         $this->processFactory = $processFactory;
+        $this->injector       = $configInjector ?? new ConfigAggregatorInjector($this->projectRoot);
 
         parent::__construct();
     }
@@ -81,11 +84,10 @@ final class RegisterCommand extends Command
         $modulesPath = CommandCommonOptions::getModulesPath($input);
         $exactPath   = $input->getOption('exact-path');
 
-        $injector       = new ConfigAggregatorInjector($this->projectRoot);
         $configProvider = sprintf('%s\ConfigProvider', $module);
         assert($configProvider !== '');
-        if (! $injector->isRegistered($configProvider)) {
-            $injector->inject(
+        if (! $this->injector->isRegistered($configProvider)) {
+            $this->injector->inject(
                 $configProvider,
                 InjectorInterface::TYPE_CONFIG_PROVIDER
             );
diff --git a/test/Module/DeregisterCommandTest.php b/test/Module/DeregisterCommandTest.php
index 076519f..1b1e7de 100644
--- a/test/Module/DeregisterCommandTest.php
+++ b/test/Module/DeregisterCommandTest.php
@@ -9,17 +9,12 @@ use Mezzio\Tooling\Composer\ComposerPackageInterface;
 use Mezzio\Tooling\Composer\ComposerProcessFactoryInterface;
 use Mezzio\Tooling\Composer\ComposerProcessInterface;
 use Mezzio\Tooling\Composer\ComposerProcessResultInterface;
-use Mezzio\Tooling\ConfigInjector\ConfigAggregatorInjector;
+use Mezzio\Tooling\ConfigInjector\InjectorInterface;
 use Mezzio\Tooling\Module\DeregisterCommand;
-use Mockery;
-use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration;
 use org\bovigo\vfs\vfsStream;
 use org\bovigo\vfs\vfsStreamDirectory;
 use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
-use Prophecy\Argument;
-use Prophecy\PhpUnit\ProphecyTrait;
-use Prophecy\Prophecy\ObjectProphecy;
 use ReflectionMethod;
 use RuntimeException;
 use Symfony\Component\Console\Input\InputInterface;
@@ -28,28 +23,27 @@ use Symfony\Component\Console\Output\ConsoleOutputInterface;
 class DeregisterCommandTest extends TestCase
 {
     use CommonOptionsAndAttributesTrait;
-    use MockeryPHPUnitIntegration;
-    use ProphecyTrait;
 
     private vfsStreamDirectory $dir;
 
-    /** @var ObjectProphecy<InputInterface> */
+    /** @var InputInterface&MockObject */
     private $input;
 
-    /** @var ObjectProphecy<ConsoleOutputInterface> */
+    /** @var InputInterface&ConsoleOutputInterface */
     private $output;
 
-    /** @var DeregisterCommand */
-    private $command;
+    private DeregisterCommand $command;
 
-    /** @var string */
-    private $expectedModuleArgumentDescription;
+    private string $expectedModuleArgumentDescription;
 
     /** @var ComposerPackageInterface&MockObject */
-    private $package;
+    private ComposerPackageInterface $package;
 
     /** @var ComposerProcessFactoryInterface&MockObject */
-    private $processFactory;
+    private ComposerProcessFactoryInterface $processFactory;
+
+    /** @var InjectorInterface&MockObject */
+    private InjectorInterface $injector;
 
     protected function setUp(): void
     {
@@ -58,16 +52,18 @@ class DeregisterCommandTest extends TestCase
         $this->dir            = vfsStream::setup('project');
         $this->package        = $this->createMock(ComposerPackageInterface::class);
         $this->processFactory = $this->createMock(ComposerProcessFactoryInterface::class);
+        $this->injector       = $this->createMock(InjectorInterface::class);
 
         $packageFactory = $this->createMock(ComposerPackageFactoryInterface::class);
         $packageFactory->method('loadPackage')->with($this->dir->url())->willReturn($this->package);
 
-        $this->input                             = $this->prophesize(InputInterface::class);
-        $this->output                            = $this->prophesize(ConsoleOutputInterface::class);
+        $this->input                             = $this->createMock(InputInterface::class);
+        $this->output                            = $this->createMock(ConsoleOutputInterface::class);
         $this->command                           = new DeregisterCommand(
             $this->dir->url(),
             $packageFactory,
-            $this->processFactory
+            $this->processFactory,
+            $this->injector
         );
         $this->expectedModuleArgumentDescription = DeregisterCommand::HELP_ARG_MODULE;
     }
@@ -113,23 +109,24 @@ class DeregisterCommandTest extends TestCase
         $composer       = 'composer.phar';
         $configProvider = $module . '\ConfigProvider';
 
-        $this->input->getArgument('module')->willReturn('MyApp');
-        $this->input->getOption('composer')->willReturn('composer.phar');
+        $this->input->method('getArgument')->with('module')->willReturn('MyApp');
+        $this->input->method('getOption')->with('composer')->willReturn('composer.phar');
 
-        $injectorMock = Mockery::mock('overload:' . ConfigAggregatorInjector::class);
-        $injectorMock
-            ->shouldReceive('isRegistered')
+        $this->injector
+            ->expects(self::once())
+            ->method('isRegistered')
             ->with($configProvider)
-            ->andReturn($removed)
-            ->once();
+            ->willReturn($removed);
+
         if ($removed) {
-            $injectorMock
-                ->shouldReceive('remove')
-                ->with($configProvider)
-                ->once();
+            $this->injector
+                ->expects(self::once())
+                ->method('remove')
+                ->with($configProvider);
         } else {
-            $injectorMock
-                ->shouldNotReceive('remove');
+            $this->injector
+                ->expects(self::never())
+                ->method('remove');
         }
 
         $this->package
@@ -165,10 +162,9 @@ class DeregisterCommandTest extends TestCase
                 ->willReturn($process);
 
             $this->output
-                ->writeln(Argument::containingString(
-                    'Removed config provider and autoloading rules for module ' . $module
-                ))
-                ->shouldBeCalled();
+                ->expects(self::atLeastOnce())
+                ->method('writeln')
+                ->with(self::stringContains('Removed config provider and autoloading rules for module ' . $module));
         }
 
         if ($disabled === false) {
@@ -176,18 +172,17 @@ class DeregisterCommandTest extends TestCase
                 ->expects($this->never())
                 ->method('createProcess');
             $this->output
-                ->writeln(Argument::containingString(
-                    'Removed config provider for module ' . $module
-                ))
-                ->shouldBeCalled();
+                ->expects(self::atLeastOnce())
+                ->method('writeln')
+                ->with(self::stringContains('Removed config provider for module ' . $module));
         }
 
         $method = $this->reflectExecuteMethod();
 
         self::assertSame(0, $method->invoke(
             $this->command,
-            $this->input->reveal(),
-            $this->output->reveal()
+            $this->input,
+            $this->output
         ));
     }
 
@@ -197,16 +192,17 @@ class DeregisterCommandTest extends TestCase
      */
     public function testAllowsExceptionsThrownFromDisableToBubbleUp(): void
     {
-        $this->input->getArgument('module')->willReturn('MyApp');
-        $this->input->getOption('composer')->willReturn('composer.phar');
-        $this->input->getOption('modules-path')->willReturn('./library/modules');
-
-        $injectorMock = Mockery::mock('overload:' . ConfigAggregatorInjector::class);
-        $injectorMock
-            ->shouldReceive('isRegistered')
+        $this->input->method('getArgument')->with('module')->willReturn('MyApp');
+        $this->input->method('getOption')->willReturnMap([
+            ['composer', 'composer.phar'],
+            ['modules-path', './library/modules'],
+        ]);
+
+        $this->injector
+            ->expects(self::once())
+            ->method('isRegistered')
             ->with('MyApp\ConfigProvider')
-            ->andReturn(false)
-            ->once();
+            ->willReturn(false);
 
         $this->package
             ->expects($this->once())
@@ -223,8 +219,8 @@ class DeregisterCommandTest extends TestCase
 
         $method->invoke(
             $this->command,
-            $this->input->reveal(),
-            $this->output->reveal()
+            $this->input,
+            $this->output
         );
     }
 }
diff --git a/test/Module/RegisterCommandTest.php b/test/Module/RegisterCommandTest.php
index 4ffdd00..a5ea1e9 100644
--- a/test/Module/RegisterCommandTest.php
+++ b/test/Module/RegisterCommandTest.php
@@ -9,19 +9,13 @@ use Mezzio\Tooling\Composer\ComposerPackageInterface;
 use Mezzio\Tooling\Composer\ComposerProcessFactoryInterface;
 use Mezzio\Tooling\Composer\ComposerProcessInterface;
 use Mezzio\Tooling\Composer\ComposerProcessResultInterface;
-use Mezzio\Tooling\ConfigInjector\ConfigAggregatorInjector;
 use Mezzio\Tooling\ConfigInjector\InjectorInterface;
 use Mezzio\Tooling\Module\RegisterCommand;
 use Mezzio\Tooling\Module\RuntimeException;
-use Mockery;
-use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration;
 use org\bovigo\vfs\vfsStream;
 use org\bovigo\vfs\vfsStreamDirectory;
 use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
-use Prophecy\Argument;
-use Prophecy\PhpUnit\ProphecyTrait;
-use Prophecy\Prophecy\ObjectProphecy;
 use ReflectionMethod;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Output\ConsoleOutputInterface;
@@ -30,31 +24,31 @@ use function mkdir;
 use function preg_replace;
 use function sprintf;
 
+/** @covers \Mezzio\Tooling\Module\RegisterCommand */
 class RegisterCommandTest extends TestCase
 {
     use CommonOptionsAndAttributesTrait;
-    use MockeryPHPUnitIntegration;
-    use ProphecyTrait;
 
     private vfsStreamDirectory $dir;
 
-    /** @var ObjectProphecy<InputInterface> */
-    private $input;
+    /** @var InputInterface&MockObject */
+    private InputInterface $input;
 
-    /** @var ObjectProphecy<ConsoleOutputInterface> */
-    private $output;
+    /** @var ConsoleOutputInterface&MockObject */
+    private ConsoleOutputInterface $output;
 
-    /** @var RegisterCommand */
-    private $command;
+    private RegisterCommand $command;
 
-    /** @var string */
-    private $expectedModuleArgumentDescription;
+    private string $expectedModuleArgumentDescription;
 
     /** @var ComposerPackageInterface&MockObject */
-    private $package;
+    private ComposerPackageInterface $package;
 
     /** @var ComposerProcessFactoryInterface&MockObject */
-    private $processFactory;
+    private ComposerProcessFactoryInterface $processFactory;
+
+    /** @var InjectorInterface&MockObject */
+    private InjectorInterface $injector;
 
     protected function setUp(): void
     {
@@ -63,16 +57,18 @@ class RegisterCommandTest extends TestCase
         $this->dir            = vfsStream::setup('project');
         $this->package        = $this->createMock(ComposerPackageInterface::class);
         $this->processFactory = $this->createMock(ComposerProcessFactoryInterface::class);
+        $this->injector       = $this->createMock(InjectorInterface::class);
 
         $packageFactory = $this->createMock(ComposerPackageFactoryInterface::class);
         $packageFactory->method('loadPackage')->with($this->dir->url())->willReturn($this->package);
 
-        $this->input                             = $this->prophesize(InputInterface::class);
-        $this->output                            = $this->prophesize(ConsoleOutputInterface::class);
+        $this->input                             = $this->createMock(InputInterface::class);
+        $this->output                            = $this->createMock(ConsoleOutputInterface::class);
         $this->command                           = new RegisterCommand(
             $this->dir->url(),
             $packageFactory,
-            $this->processFactory
+            $this->processFactory,
+            $this->injector
         );
         $this->expectedModuleArgumentDescription = RegisterCommand::HELP_ARG_MODULE;
     }
@@ -119,11 +115,7 @@ class RegisterCommandTest extends TestCase
         // phpcs:enable
     }
 
-    /**
-     * @runInSeparateProcess
-     * @preserveGlobalState disabled
-     * @dataProvider injectedEnabled
-     */
+    /** @dataProvider injectedEnabled */
     public function testCommandEmitsExpectedMessagesWhenItInjectsConfigurationAndEnablesModule(
         bool $injected,
         bool $enabled,
@@ -156,25 +148,29 @@ class RegisterCommandTest extends TestCase
             );
         mkdir($pathToCreate, 0777, true);
 
-        $this->input->getArgument('module')->willReturn($module);
-        $this->input->getOption('composer')->willReturn($composer);
-        $this->input->getOption('modules-path')->willReturn($modulesPath);
-        $this->input->getOption('exact-path')->willReturn($exactPath);
+        $this->input->method('getArgument')->with('module')->willReturn($module);
+        $this->input->method('getOption')->willReturnMap([
+            ['composer', $composer],
+            ['modules-path', $modulesPath],
+            ['exact-path', $exactPath],
+        ]);
 
-        $injectorMock = Mockery::mock('overload:' . ConfigAggregatorInjector::class);
-        $injectorMock
-            ->shouldReceive('isRegistered')
+        $this->injector
+            ->expects(self::once())
+            ->method('isRegistered')
             ->with($configProvider)
-            ->andReturn(! $injected)
-            ->once();
+            ->willReturn(! $injected);
+
         if ($injected) {
-            $injectorMock
-                ->shouldReceive('inject')
-                ->with($configProvider, InjectorInterface::TYPE_CONFIG_PROVIDER)
-                ->once();
+            $this->injector
+                ->expects(self::once())
+                ->method('inject')
+                ->with($configProvider, InjectorInterface::TYPE_CONFIG_PROVIDER);
         } else {
-            $injectorMock
-                ->shouldNotReceive('inject');
+            $this->injector
+                ->expects(self::never())
+                ->method('inject')
+                ->with($configProvider, InjectorInterface::TYPE_CONFIG_PROVIDER);
         }
 
         $this->package
@@ -214,10 +210,9 @@ class RegisterCommandTest extends TestCase
                 ->willReturn($process);
 
             $this->output
-                ->writeln(Argument::containingString(
-                    'Registered config provider and autoloading rules for module ' . $module
-                ))
-                ->shouldBeCalled();
+                ->expects(self::atLeastOnce())
+                ->method('writeln')
+                ->with(self::stringContains('Registered config provider and autoloading rules for module ' . $module));
         }
 
         if ($enabled === false) {
@@ -226,38 +221,34 @@ class RegisterCommandTest extends TestCase
                 ->method('createProcess');
 
             $this->output
-                ->writeln(Argument::containingString(
-                    'Registered config provider for module ' . $module
-                ))
-                ->shouldBeCalled();
+                ->expects(self::atLeastOnce())
+                ->method('writeln')
+                ->with(self::stringContains('Registered config provider for module ' . $module));
         }
 
         $method = $this->reflectExecuteMethod();
 
         self::assertSame(0, $method->invoke(
             $this->command,
-            $this->input->reveal(),
-            $this->output->reveal()
+            $this->input,
+            $this->output
         ));
     }
 
-    /**
-     * @runInSeparateProcess
-     * @preserveGlobalState disabled
-     */
     public function testAllowsRuntimeExceptionsThrownFromEnableToBubbleUp(): void
     {
-        $this->input->getArgument('module')->willReturn('MyApp');
-        $this->input->getOption('composer')->willReturn('composer.phar');
-        $this->input->getOption('modules-path')->willReturn('./library/modules');
-        $this->input->getOption('exact-path')->willReturn(null);
-
-        $injectorMock = Mockery::mock('overload:' . ConfigAggregatorInjector::class);
-        $injectorMock
-            ->shouldReceive('isRegistered')
+        $this->input->method('getArgument')->with('module')->willReturn('MyApp');
+        $this->input->method('getOption')->willReturnMap([
+            ['composer', 'composer.phar'],
+            ['modules-path', './library/modules'],
+            ['exact-path', null],
+        ]);
+
+        $this->injector
+            ->expects(self::once())
+            ->method('isRegistered')
             ->with('MyApp\ConfigProvider')
-            ->andReturn(true)
-            ->once();
+            ->willReturn(true);
 
         $this->processFactory->expects($this->never())->method('createProcess');
 
@@ -268,8 +259,8 @@ class RegisterCommandTest extends TestCase
 
         $method->invoke(
             $this->command,
-            $this->input->reveal(),
-            $this->output->reveal()
+            $this->input,
+            $this->output
         );
     }
 }

@Ocramius
Copy link
Member

@weierophinney as a warning for future development (I know this code was written in around 2017, if not earlier): if something needs mockery to workaround final limitations, there's probably a design issue :D

Let's please never use Mockery again.

@Ocramius
Copy link
Member

Extracted work done so far to #37

@weierophinney
Copy link
Contributor

I remember relief at getting Mockery to work here, which should have been the clue needed to guide me to a refactor... Live and learn...

@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch 3 times, most recently from 1c49b68 to 300a300 Compare December 1, 2022 11:42
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch 4 times, most recently from 271d972 to 03b34a1 Compare December 8, 2022 00:19
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch 2 times, most recently from d4b0cc9 to 452fb66 Compare December 15, 2022 00:39
@Ocramius Ocramius changed the base branch from 2.7.x to 2.9.x December 15, 2022 00:41
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch 3 times, most recently from a34a180 to e2d7c48 Compare December 18, 2022 00:21
@Ocramius Ocramius added this to the 2.9.0 milestone Dec 18, 2022
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch 3 times, most recently from 34b4d21 to e26dea3 Compare December 28, 2022 00:38
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch 2 times, most recently from ed63df6 to 171373c Compare January 5, 2023 23:00
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch from 171373c to 9557c9b Compare January 8, 2023 00:27
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch from 9557c9b to f6984ad Compare January 12, 2023 01:29
@renovate renovate bot changed the title Update dependency psalm/plugin-mockery to v1 Update dependency psalm/plugin-mockery to v1 - autoclosed Jan 13, 2023
@renovate renovate bot closed this Jan 13, 2023
@renovate renovate bot deleted the renovate/psalm-plugin-mockery-1.x branch January 13, 2023 09:10
@renovate renovate bot changed the title Update dependency psalm/plugin-mockery to v1 - autoclosed Update dependency psalm/plugin-mockery to v1 Jan 13, 2023
@renovate renovate bot reopened this Jan 13, 2023
@renovate renovate bot restored the renovate/psalm-plugin-mockery-1.x branch January 13, 2023 13:07
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch 4 times, most recently from 090d08b to 7126c9b Compare January 19, 2023 01:13
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch 3 times, most recently from 4a24a01 to 7c02c71 Compare February 2, 2023 00:37
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch from 7c02c71 to 2f39849 Compare December 12, 2023 13:55
@gsteel gsteel removed this from the 2.9.0 milestone Dec 12, 2023
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch from 2f39849 to 1e28d8b Compare December 12, 2023 16:17
@renovate renovate bot changed the base branch from 2.9.x to 2.10.x December 12, 2023 19:30
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch 2 times, most recently from 5a39091 to ffed0cd Compare December 25, 2023 03:32
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch 2 times, most recently from c2918d7 to 81eef8d Compare January 8, 2024 03:41
| datasource | package              | from   | to    |
| ---------- | -------------------- | ------ | ----- |
| packagist  | psalm/plugin-mockery | 0.11.0 | 1.1.0 |


Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@renovate renovate bot force-pushed the renovate/psalm-plugin-mockery-1.x branch from 81eef8d to 33542b5 Compare January 15, 2024 05:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants