GithubHelp home page GithubHelp logo

pyrech / composer-changelogs Goto Github PK

View Code? Open in Web Editor NEW
585.0 11.0 26.0 1.4 MB

:notebook: Display better summary after Composer update

License: MIT License

PHP 99.95% Shell 0.05%
composer changelog composer-plugin php hacktoberfest

composer-changelogs's Introduction

composer-changelogs

Total Downloads Latest Stable Version Latest Unstable Version

composer-changelogs is a plugin for Composer. It displays some texts after each Composer update to nicely summarize the modified packages with links to release and compare urls. Just copy it in your commit body and you get a nice description.

Demo

Installation

You can install it either globally:

composer global require "pyrech/composer-changelogs"

or locally:

composer require --dev "pyrech/composer-changelogs"

Usage

That's it! Composer will enable automatically the plugin as soon it's installed. Just run your Composer updates as usual :)

If you no longer want to display summary, you can either:

  • run your Composer command with the option --no-plugins
  • uninstall the package

Further documentation

Here is some documentation about the project:

You can see the current and past versions using one of the following:

And finally some meta documentation:

Credits

Kudos to Damien Alexandre for the idea.

License

composer-changelogs is licensed under the MIT License - see the LICENSE file for details.

composer-changelogs's People

Contributors

curtisgibby avatar dominicimhof avatar j0k3r avatar jeromegamez avatar jonpugh avatar laurent35240 avatar localheinz avatar maxgfeller avatar mikemand avatar nochso avatar noniagriconomie avatar ohartl avatar pyrech avatar soullivaneuh avatar stefangr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

composer-changelogs's Issues

Running the auto-commit after composer scripts

Currently my composer update is executing some composer scripts, which are executing a file generator of the symfony framework. This is required because these files change sometimes when symfony is updated. I'd like to execute the auto-commit after these scripts, so i can add the generated files in the commit.

Suggestion: Show changelog via composer.lock log

Hi, just a suggestion, no idea if it's possible, but it might be nice to be able to see this information dynamically for composer.lock instead of committing it to Git. Something like...

$> composer changelog

Which would then git log composer.lock and do whatever stuff you're doing here to show the diff for each change.

But like I said, I haven't looked into how you need to compute this stuff so close this if it's a rubbish idea.

Drop old PHP versions

Hi,

I think we can drop support of old PHP versions (< 7.1) since they are not supported by PHP ecosystem anymore.

It will resolve then failing builds in Travis also.

I can take care of it if you want

[RFC] commit composer.lock automatically with plugin output as commit message

The concept of pasting the output of this plugin into the commit message for the composer.lock update is really nice. Its probably one of the best ways to get a decent update description of dependencies into the commit message of the lock file.

But :) there are still some steps do manually, like copy/pasting the output of the plugin, when appending the git commit command with the message or into an editor, when editing the commit message before the commit.

Please let me suggest a basic new feature for this plugin:
a CLI command, maybe named --commit-lockfile, which automatically commits (but not pushes) the composer.lock with the output of this plugin as commit message.

Error when upgrading to v2.0.0 (Cannot assign Pyrech\ComposerChangelogs\Config\Config to property)

  • PHP v8.2
  • Composer v2.5.2

When having v1.8.2 installed and upgrading to v2.0.0 you might get this error:

  - Upgrading pyrech/composer-changelogs (v1.8.2 => v2.0.0): Extracting archive
    Update of pyrech/composer-changelogs failed

In PluginManager.php(274) : eval()'d code line 111:
                                                                                                                                                         
  [TypeError]                                                                                                                                            
  Cannot assign Pyrech\ComposerChangelogs\Config\Config to property Pyrech\ComposerChangelogs\ChangelogsPlugin_composer_tmp0::$config of type ?Pyrech\C  
  omposerChangelogs\Model\Config                

After clearing composer cache it should work fine.

$ composer clear-cache

...

$ composer update

...

Changelogs summary:

 - pyrech/composer-changelogs updated from v1.8.2 to v2.0.0 major
   See changes: https://github.com/pyrech/composer-changelogs/compare/v1.8.2...v2.0.0
   Release notes: https://github.com/pyrech/composer-changelogs/releases/tag/v2.0.0

However... can this behavior be prevented? Anyone else experienced this issue?

Lower PHP version requirement to 5.3

I would want to use your package in the WP-CLI project: wp-cli/wp-cli#3881

However, we still support PHP 5.3, to adhere to Composer requirements (which is used for package management).

A quick look at the code revealed that short array syntax seems to be the only PHP 5.4-only feature that is being used.

It would be a quick change (without any backwards compatibility issues) to lower PHP requirement to 5.3+ instead of 5.4+.

Support for gitlab

In case that's possible I'd really like to see this plugin support self hosted gitlab instances as well.

Currently I do not have the time to do it myself but I thought to at least submit the idea as a start.

Undefined index: scheme

While working on a local dependency, I defined it locally on my composer.json:

"repositories": [
    {
        "type":"vcs",
        "url":"/path/to/the/bundle"
    }
],

Everything went fine on composer up.
But I then switched back to normal and removed my custom repositories directive. On the composer up, I got an error:

Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Updating my/awesome-bundle (dev-sf3.0 270ac26 => v1.4.7)
    Checking out ef6830dbbf62b22efd335db8f64bf0f51d4284a2

Writing lock file
Generating autoload files



  [ErrorException]
  Undefined index: scheme



update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--with-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--] [<packages>]...

Class 'Pyrech\ComposerChangelogs\Update' not found

This is thrown just after upgrading to v1.1.0:

$ composer global up
Changed current directory to /home/sullivan/.composer
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Removing pyrech/composer-changelogs (v1.0)
  - Installing pyrech/composer-changelogs (v1.1.0)
    Downloading: 100%         

PHP Fatal error:  Class 'Pyrech\ComposerChangelogs\Update' not found in /home/sullivan/.composer/vendor/pyrech/composer-changelogs/src/ChangelogsPlugin.php on line 79
PHP Stack trace:
PHP   1. {main}() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/bin/composer:0
PHP   2. Composer\Console\Application->run() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/bin/composer:44
PHP   3. Symfony\Component\Console\Application->run() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Console/Application.php:82
PHP   4. Composer\Console\Application->doRun() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Application.php:126
PHP   5. Symfony\Component\Console\Application->doRun() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Console/Application.php:147
PHP   6. Symfony\Component\Console\Application->doRunCommand() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Application.php:195
PHP   7. Composer\Command\GlobalCommand->run() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Application.php:878
PHP   8. Composer\Console\Application->run() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Command/GlobalCommand.php:80
PHP   9. Symfony\Component\Console\Application->run() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Console/Application.php:82
PHP  10. Composer\Console\Application->doRun() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Application.php:126
PHP  11. Symfony\Component\Console\Application->doRun() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Console/Application.php:147
PHP  12. Symfony\Component\Console\Application->doRunCommand() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Application.php:195
PHP  13. Symfony\Component\Console\Command\Command->run() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Application.php:878
PHP  14. Composer\Command\UpdateCommand->execute() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Command/Command.php:259
PHP  15. Composer\Installer->run() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Command/UpdateCommand.php:143
PHP  16. Composer\Installer->doInstall() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Installer.php:232
PHP  17. Composer\EventDispatcher\EventDispatcher->dispatchPackageEvent() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Installer.php:620
PHP  18. Composer\EventDispatcher\EventDispatcher->doDispatch() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/EventDispatcher/EventDispatcher.php:112
PHP  19. call_user_func:{/home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/EventDispatcher/EventDispatcher.php:152}() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/EventDispatcher/EventDispatcher.php:152
PHP  20. Pyrech\ComposerChangelogs\ChangelogsPlugin->postPackageUpdate() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/EventDispatcher/EventDispatcher.php:152

Fatal error: Class 'Pyrech\ComposerChangelogs\Update' not found in /home/sullivan/.composer/vendor/pyrech/composer-changelogs/src/ChangelogsPlugin.php on line 79

Call Stack:
    0.0002     244120   1. {main}() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/bin/composer:0
    0.0329    3568416   2. Composer\Console\Application->run() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/bin/composer:44
    0.0360    3932488   3. Symfony\Component\Console\Application->run() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Console/Application.php:82
    0.0373    4075072   4. Composer\Console\Application->doRun() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Application.php:126
    0.0385    4199848   5. Symfony\Component\Console\Application->doRun() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Console/Application.php:147
    0.0387    4200768   6. Symfony\Component\Console\Application->doRunCommand() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Application.php:195
    0.0387    4201096   7. Composer\Command\GlobalCommand->run() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Application.php:878
    0.0416    4434688   8. Composer\Console\Application->run() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Command/GlobalCommand.php:80
    0.0416    4434688   9. Symfony\Component\Console\Application->run() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Console/Application.php:82
    0.0417    4434832  10. Composer\Console\Application->doRun() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Application.php:126
    0.0419    4442440  11. Symfony\Component\Console\Application->doRun() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Console/Application.php:147
    0.0420    4442472  12. Symfony\Component\Console\Application->doRunCommand() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Application.php:195
    0.0420    4442904  13. Symfony\Component\Console\Command\Command->run() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Application.php:878
    0.0425    4447776  14. Composer\Command\UpdateCommand->execute() /home/sullivan/projects/my/composer-versions-check/vendor/symfony/console/Command/Command.php:259
    0.1617    9708288  15. Composer\Installer->run() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Command/UpdateCommand.php:143
    0.1649    9796584  16. Composer\Installer->doInstall() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Installer.php:232
  193.8515  322774032  17. Composer\EventDispatcher\EventDispatcher->dispatchPackageEvent() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/Installer.php:620
  193.8516  322774520  18. Composer\EventDispatcher\EventDispatcher->doDispatch() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/EventDispatcher/EventDispatcher.php:112
  193.8517  322774920  19. call_user_func:{/home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/EventDispatcher/EventDispatcher.php:152}() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/EventDispatcher/EventDispatcher.php:152
  193.8517  322775160  20. Pyrech\ComposerChangelogs\ChangelogsPlugin->postPackageUpdate() /home/sullivan/projects/my/composer-versions-check/vendor/composer/composer/src/Composer/EventDispatcher/EventDispatcher.php:152

If I run the command again, no problem.

I suspect BC breaking code. This should be handled smoothly even for a composer plugin to avoid this kind of weird error.

Add a verification about the Composer version

After updating composer-changelogs globally, I got this error when updating a repo:

j0k@MBP:~/Sites/f43.me$ composer up
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Updating j0k3r/graby-site-config (1.0.3 => 1.0.4)
    Checking out cf088ca2100eeec3f230cc187a5b489e61fe97f1

Writing lock file
Generating autoload files
PHP Fatal error:  Call to undefined method Composer\Package\CompletePackage::getFullPrettyVersion() in /Users/j0k/.composer/vendor/pyrech/composer-changelogs/src/OperationHandler/UpdateHandler.php on line 58
PHP Stack trace:
PHP   1. {main}() /usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar:0
PHP   2. require() /usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar:24
PHP   3. Composer\Console\Application->run($input = *uninitialized*, $output = *uninitialized*) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/bin/composer:43
PHP   4. Symfony\Component\Console\Application->run($input = *uninitialized*, $output = *uninitialized*) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/Console/Application.php:84
PHP   5. Composer\Console\Application->doRun($input = *uninitialized*, $output = *uninitialized*) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:126
PHP   6. Symfony\Component\Console\Application->doRun($input = *uninitialized*, $output = *uninitialized*) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/Console/Application.php:147
PHP   7. Symfony\Component\Console\Application->doRunCommand($command = *uninitialized*, $input = *uninitialized*, $output = *uninitialized*) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:195
PHP   8. Symfony\Component\Console\Command\Command->run($input = *uninitialized*, $output = *uninitialized*) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:874
PHP   9. Composer\Command\UpdateCommand->execute($input = *uninitialized*, $output = *uninitialized*) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257
PHP  10. Composer\Installer->run() phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/Command/UpdateCommand.php:140
PHP  11. Composer\EventDispatcher\EventDispatcher->dispatchScript($eventName = *uninitialized*, $devMode = *uninitialized*, $additionalArgs = *uninitialized*, $flags = *uninitialized*) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/Installer.php:336
PHP  12. Composer\EventDispatcher\EventDispatcher->doDispatch($event = *uninitialized*) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:91
PHP  13. call_user_func:{phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:151}(*uninitialized*, *uninitialized*) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:151
PHP  14. Pyrech\ComposerChangelogs\ChangelogsPlugin->postUpdate($event = *uninitialized*) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:151
PHP  15. Pyrech\ComposerChangelogs\Outputter->getOutput() /Users/j0k/.composer/vendor/pyrech/composer-changelogs/src/ChangelogsPlugin.php:76
PHP  16. Pyrech\ComposerChangelogs\Outputter->createOperationOutput($output = *uninitialized*, $operation = *uninitialized*) /Users/j0k/.composer/vendor/pyrech/composer-changelogs/src/Outputter.php:61
PHP  17. Pyrech\ComposerChangelogs\OperationHandler\UpdateHandler->getOutput($operation = *uninitialized*, $urlGenerator = *uninitialized*) /Users/j0k/.composer/vendor/pyrech/composer-changelogs/src/Outputter.php:92

Fatal error: Call to undefined method Composer\Package\CompletePackage::getFullPrettyVersion() in /Users/j0k/.composer/vendor/pyrech/composer-changelogs/src/OperationHandler/UpdateHandler.php on line 58

Call Stack:
    0.0116     410496   1. {main}() /usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar:0
    0.0120     412248   2. require('phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/bin/composer') /usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar:24
    0.0587    3501888   3. Composer\Console\Application->run(???, ???) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/bin/composer:43
    0.0612    3818560   4. Symfony\Component\Console\Application->run(???, ???) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/Console/Application.php:84
    0.0622    3943288   5. Composer\Console\Application->doRun(???, ???) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:126
    0.0635    4065184   6. Symfony\Component\Console\Application->doRun(???, ???) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/Console/Application.php:147
    0.0638    4066104   7. Symfony\Component\Console\Application->doRunCommand(???, ???, ???) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:195
    0.0638    4066576   8. Symfony\Component\Console\Command\Command->run(???, ???) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:874
    0.0647    4070960   9. Composer\Command\UpdateCommand->execute(???, ???) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257
    0.3706    9571456  10. Composer\Installer->run() phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/Command/UpdateCommand.php:140
  135.7863  256004064  11. Composer\EventDispatcher\EventDispatcher->dispatchScript(???, ???, ???, ???) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/Installer.php:336
  135.7863  256004504  12. Composer\EventDispatcher\EventDispatcher->doDispatch(???) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:91
  135.7957  256110168  13. call_user_func:{phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:151}(???, ???) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:151
  135.7957  256110280  14. Pyrech\ComposerChangelogs\ChangelogsPlugin->postUpdate(???) phar:///usr/local/Cellar/composer/1.0.0-alpha10/libexec/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:151
  135.7957  256110352  15. Pyrech\ComposerChangelogs\Outputter->getOutput() /Users/j0k/.composer/vendor/pyrech/composer-changelogs/src/ChangelogsPlugin.php:76
  135.7957  256110880  16. Pyrech\ComposerChangelogs\Outputter->createOperationOutput(???, ???) /Users/j0k/.composer/vendor/pyrech/composer-changelogs/src/Outputter.php:61
  135.7958  256112040  17. Pyrech\ComposerChangelogs\OperationHandler\UpdateHandler->getOutput(???, ???) /Users/j0k/.composer/vendor/pyrech/composer-changelogs/src/Outputter.php:92

j0k@MBP:~/Sites/f43.me$

I checked my composer version (which was installed using homebrew) and I got this version: Composer version 1.0.0-alpha10 2015-04-14 21:18:51 which seems quite old but it's the latest release.

After upgrading composer, I got a newer version Composer version 1.0-dev (7a9eb02190d334513e99a479510f87eed18cf958) 2015-10-07 10:05:33 and no more error when performing a composer up.

Maybe you should add a verification on the Composer version to see what you can or cannot do.

When switching to a fork, the update message is wrong

Switching to a fork of FOSElasticaBundle provided the wrong message.

I was using "friendsofsymfony/elastica-bundle": "~3.1", and then added:

        {
            "type": "vcs",
            "url": "https://github.com/damienalexandre/FOSElasticaBundle"
        }

I'm now using the fork, with a specific branch:

"friendsofsymfony/elastica-bundle": "dev-feature/dynamic as 3.1"

Expected result

The plugin should show a "accros fork" comparison url: FriendsOfSymfony/FOSElasticaBundle@v3.1.5...damienalexandre:feature/dynamic

Notice the absence of "dev-" in the branch name too.

Actual result

Changelogs summary:

 - friendsofsymfony/elastica-bundle updated from v3.1.5 to dev-feature/dynamic
   See changes: https://github.com/FriendsOfSymfony/FOSElasticaBundle/compare/v3.1.5...dev-feature/dynamic
   Release notes: https://github.com/FriendsOfSymfony/FOSElasticaBundle/releases/tag/dev-feature/dynamic

Display VCS Revision for dev-xyz

Currently, when updating an unstable version, it only shows dev-develop to dev-develop for example, as in the following snippet:

 - squizlabs/php_codesniffer updated from 3.4.2 to 3.5.0
   See changes: https://github.com/squizlabs/PHP_CodeSniffer/compare/3.4.2...3.5.0
   Release notes: https://github.com/squizlabs/PHP_CodeSniffer/releases/tag/3.5.0

 - friendsofcake/bootstrap-ui updated from dev-develop to dev-develop
   See changes: https://github.com/FriendsOfCake/bootstrap-ui/compare/958a5dd...6d57476

But it would carry more information if it would also display the VCS revision in that line, like so:

 - squizlabs/php_codesniffer updated from 3.4.2 to 3.5.0
   See changes: https://github.com/squizlabs/PHP_CodeSniffer/compare/3.4.2...3.5.0
   Release notes: https://github.com/squizlabs/PHP_CodeSniffer/releases/tag/3.5.0

 - friendsofcake/bootstrap-ui updated from dev-develop~958a5dd to dev-develop~6d57476
   See changes: https://github.com/FriendsOfCake/bootstrap-ui/compare/958a5dd...6d57476

Alternatively to the tilde sign, it could use a slash, instead:

 - friendsofcake/bootstrap-ui updated from dev-develop/958a5dd to dev-develop/6d57476

Or the at sign (preferred):

 - friendsofcake/bootstrap-ui updated from dev-develop@958a5dd to dev-develop@6d57476

Error message when uninstalling

Hi,

Here under the output from composer when I tried to uninstall composer-changelogs (to check that the command worked").
It worked in way because the package got removed but I also got a fatal error because a file that exists wasn't found.

I couldn't find were the error came from.

composer global remove "pyrech/composer-changelogs"
Changed current directory to /home/mike/.composer
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Removing pyrech/composer-changelogs (v1.1.1)
Writing lock file
Generating autoload files
PHP Fatal error:  Class 'Pyrech\ComposerChangelogs\Version' not found in /home/mike/.composer/vendor/pyrech/composer-changelogs/src/OperationHandler/UninstallHandler.php on line 54

Fatal error: Class 'Pyrech\ComposerChangelogs\Version' not found in /home/mike/.composer/vendor/pyrech/composer-changelogs/src/OperationHandler/UninstallHandler.php on line 54

Usage with --dry-run

is it possible to get the same output, when i use dry-run, that i can check it before i update?

Improve the "composer outdated" command output

One thing I love about this plugin is the direct links to changelogs and diff when I run "composer update", this is what allow me to make sure what's going to be shipped with my application / what I can improve with those new packages updates.

But it's kind of tricky, slow and breaking stuffs sometimes to run "composer update" just to get the list of links / versions etc.

There is an outdated command in Composer which list all the installed packages and what versions you could upgrade with:

bash-4.3$ composer outdated

composer/ca-bundle                             1.0.8                                     1.1.0   Lets you find a path to the system CA bundle, and includes a fallback to the Mozil...
doctrine/doctrine-bundle                       1.6.13                                    1.8.1   Symfony DoctrineBundle
doctrine/doctrine-migrations-bundle            v1.2.1                                    v1.3.1  Symfony DoctrineMigrationsBundle
doctrine/orm                                   v2.5.11                                   v2.5.14 Object-Relational-Mapper for PHP

This is super useful but it miss the links with diff and changelog this plugin provides when doing an update!

Could this be possible to add?

Cheers ๐Ÿ’› from JoliCode ๐Ÿ’› ๐Ÿ˜‹

Deprecation Notice: strpos(): Passing null to parameter #1

Getting this error on PHP 8.1.6, the module seems to be working as expected

Deprecation Notice: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/html/vendor/pyrech/composer-changelogs/src/UrlGenerator/GitBasedUrlGenerator.php:33
Deprecation Notice: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/html/vendor/pyrech/composer-changelogs/src/UrlGenerator/GitBasedUrlGenerator.php:33
Deprecation Notice: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/html/vendor/pyrech/composer-changelogs/src/UrlGenerator/WordPressUrlGenerator.php:28

Add option to output to Markdown table

We use Gitlab instead of Github, and Gitlab uses markdown for issues. It would be great to have an option to have the output of this plugin generated as a Markdown table, so we can copy/paste it into an issue.

Long format changes description

I think, there is an option for "long" format change show. For example, getting changes info from version tags within git tag.

For example

laravel/framework updated from 5.6 to 5.7
Changes for laravel/framework
- Change1
- Change2
- [Populate this list from git tag details from {fromVersion} to {toVersion}

Maybe, this can not be enhancement to project. Let me know ๐Ÿ‘

What about dev-****?

When switching from a tagged version to a branch version, the generated text is wrong:

- fin1te/safecurl updated from v1.1 to dev-master
   See changes: fin1te/[email protected]
   Release notes: https://github.com/fin1te/safecurl/releases/tag/dev-master

I think if the tag is starting with dev- you should :

  • remove dev- from the See changes section
  • target REPO/tree/BRANCHNAME from the Release notes section. Or maybe just remove this section.

Change how classes are force-autoloaded

Composer plugins need to ensure all their classes are loaded to ensure a smooth run when upgraded.
I propose to change how this is done in this plugin here by what does Symfony Flex (which is way more maintenable) :

foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator(__DIR__, \FilesystemIterator::SKIP_DOTS)) as $file) {
if ('.php' === substr($file, 0, -4)) {
    require_once $file;
}

Exception when installing "Undefined index: scheme"

On version 1.3.0, when doing composer update of this:

{
    "name": "happyr/translation-bundle",
    "type": "symfony-bundle",
    "description": "Integrate Symfony with translations SaaS like http://localise.biz",
    "keywords": [],
    "homepage": "http://developer.happyr.com",
    "license": "MIT",
    "authors": [
        {
            "name": "Tobias Nyholm",
            "email": "[email protected]"
        }
    ],
    "require": {
        "php": ">=5.5.9",
        "symfony/symfony":"~2.7|~3.0",
        "sensio/framework-extra-bundle": "~2.7|~3.0",
        "php-http/httplug": "^1.0",
        "php-http/plugins": "^1.0",
        "php-http/client-implementation": "^1.0",
        "psr/log": "^1.0"
    },
    "require-dev": {
        "php-http/guzzle6-adapter": "^1.0",
        "phpunit/phpunit": "^5.2",
        "puli/composer-plugin": "1.0.0-beta9",
        "puli/repository": "1.0.0-beta9",
        "puli/discovery": "1.0.0-beta9",
        "puli/url-generator": "1.0-beta4",
        "php-http/mock-client": "^0.3.0"
    },
    "suggest": {
        "php-http/httplug-bundle": "To easier configure your httplug clients.",
        "happyr/auto-fallback-translation-bundle": "To automatically translate phrases that are missing form your secondary language."
    },
    "autoload": {
        "psr-4": {
            "Happyr\\TranslationBundle\\": "src/"
        }
    }
}

I get the following stack trace:

  [ErrorException]         
  Undefined index: scheme  


Exception trace:
 () at /home/dalexandre/.composer/vendor/pyrech/composer-changelogs/src/UrlGenerator/AbstractUrlGenerator.php:32
 Composer\Util\ErrorHandler::handle() at /home/dalexandre/.composer/vendor/pyrech/composer-changelogs/src/UrlGenerator/AbstractUrlGenerator.php:32
 Pyrech\ComposerChangelogs\UrlGenerator\AbstractUrlGenerator->generateBaseUrl() at /home/dalexandre/.composer/vendor/pyrech/composer-changelogs/src/UrlGenerator/GithubUrlGenerator.php:34
 Pyrech\ComposerChangelogs\UrlGenerator\GithubUrlGenerator->generateCompareUrl() at /home/dalexandre/.composer/vendor/pyrech/composer-changelogs/src/OperationHandler/UpdateHandler.php:84
 Pyrech\ComposerChangelogs\OperationHandler\UpdateHandler->getOutput() at /home/dalexandre/.composer/vendor/pyrech/composer-changelogs/src/Outputter.php:92
 Pyrech\ComposerChangelogs\Outputter->createOperationOutput() at /home/dalexandre/.composer/vendor/pyrech/composer-changelogs/src/Outputter.php:61
 Pyrech\ComposerChangelogs\Outputter->getOutput() at /home/dalexandre/.composer/vendor/pyrech/composer-changelogs/src/ChangelogsPlugin.php:78
 Pyrech\ComposerChangelogs\ChangelogsPlugin->postUpdate() at n/a:n/a
 call_user_func() at phar:///home/dalexandre/bin/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:166
 Composer\EventDispatcher\EventDispatcher->doDispatch() at phar:///home/dalexandre/bin/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:94
 Composer\EventDispatcher\EventDispatcher->dispatchScript() at phar:///home/dalexandre/bin/composer.phar/src/Composer/Installer.php:332
 Composer\Installer->run() at phar:///home/dalexandre/bin/composer.phar/src/Composer/Command/UpdateCommand.php:173
 Composer\Command\UpdateCommand->execute() at phar:///home/dalexandre/bin/composer.phar/vendor/symfony/console/Command/Command.php:259
 Symfony\Component\Console\Command\Command->run() at phar:///home/dalexandre/bin/composer.phar/vendor/symfony/console/Application.php:844
 Symfony\Component\Console\Application->doRunCommand() at phar:///home/dalexandre/bin/composer.phar/vendor/symfony/console/Application.php:192
 Symfony\Component\Console\Application->doRun() at phar:///home/dalexandre/bin/composer.phar/src/Composer/Console/Application.php:166
 Composer\Console\Application->doRun() at phar:///home/dalexandre/bin/composer.phar/vendor/symfony/console/Application.php:123
 Symfony\Component\Console\Application->run() at phar:///home/dalexandre/bin/composer.phar/src/Composer/Console/Application.php:99
 Composer\Console\Application->run() at phar:///home/dalexandre/bin/composer.phar/bin/composer:43
 require() at /home/dalexandre/bin/composer.phar:25

Have fun Loick :)

PHP Fatal error: Cannot redeclare class SLLH\ComposerVersionsCheck\VersionsCheckPlugin in Composer/Plugin/PluginManager.php(246)

$ composer require --dev "pyrech/composer-changelogs"
Using version ^1.2 for pyrech/composer-changelogs
./composer.json has been updated
PHP Fatal error:  Cannot redeclare class SLLH\ComposerVersionsCheck\VersionsCheckPlugin in phar:///usr/local/bin/composer/src/Composer/Plugin/PluginManager.php(246) : eval()'d code on line 19

Fatal error: Cannot redeclare class SLLH\ComposerVersionsCheck\VersionsCheckPlugin in phar:///usr/local/bin/composer/src/Composer/Plugin/PluginManager.php(246) : eval()'d code on line 19

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.