marcocesarato / php-conventional-changelog

A PHP tool built to generate a changelog from a project's commit messages and metadata following the conventionalcommits.org and automate versioning with semver.org.
GNU General Public License v3.0
230 stars 32 forks source link

Plans for PHP 8 Support? #9

Closed jordanbrauer closed 3 years ago

jordanbrauer commented 3 years ago

Hey there, really digging this library! it fills a much needed gap, and it's nice to have a PHP solution for PHP projects. Anyways.. onto the issue; title pretty much says it all.

marcocesarato commented 3 years ago

Hi, using the last release 1.9.7 it should be compatible with php 8. Tested on the new release. Let me know if it works also for you.

jordanbrauer commented 3 years ago

Hi, @marcocesarato ! Just tried installing it with PHP 8.0 and it appears to install fine, however after running it, I am receiving this error,

~/Code/unit-converter is the location of the repository on my host

PHP Fatal error:  Uncaught TypeError: array_key_exists(): Argument #2 ($array) must be of type array, ConventionalChangelog\Git\Commit given in ~/Code/unit-converter/vendor/marcocesarato/php-conventional-changelog/src/Changelog.php:269
Stack trace:
#0 ~/Code/unit-converter/vendor/marcocesarato/php-conventional-changelog/src/Changelog.php(269): array_key_exists('subject', Object(ConventionalChangelog\Git\Commit))
#1 [internal function]: ConventionalChangelog\Changelog->ConventionalChangelog\{closure}(Object(ConventionalChangelog\Git\Commit), Object(ConventionalChangelog\Git\Commit))
#2 ~/Code/unit-converter/vendor/marcocesarato/php-conventional-changelog/src/Changelog.php(278): usort(Array, Object(Closure))
#3 ~/Code/unit-converter/vendor/marcocesarato/php-conventional-changelog/src/DefaultCommand.php(106): ConventionalChangelog\Changelog->generate(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Style\SymfonyStyle))
#4 ~/Code/unit-converter/vendor/symfony/console/Command/Command.php(256): ConventionalChangelog\DefaultCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 ~/Code/unit-converter/vendor/symfony/console/Application.php(971): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#6 ~/Code/unit-converter/vendor/symfony/console/Application.php(290): Symfony\Component\Console\Application->doRunCommand(Object(ConventionalChangelog\DefaultCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#7 ~/Code/unit-converter/vendor/symfony/console/Application.php(166): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#8 ~/Code/unit-converter/vendor/marcocesarato/php-conventional-changelog/conventional-changelog(33): Symfony\Component\Console\Application->run()
#9 {main}
  thrown in ~/Code/unit-converter/vendor/marcocesarato/php-conventional-changelog/src/Changelog.php on line 269

However, if I run it with PHP 7.3, it works just fine and I am met with a successful output message and change log file update.

Summary
=======

 * 2 New features
 * 1 Bugs and issues resolution

 [OK] Changelog generated!

 > Changelog file: CHANGELOG.md
marcocesarato commented 3 years ago

Check it now on 1.9.9 it should be fixed. Be sure you updated the package and let me now know if it works :)

jordanbrauer commented 3 years ago

Yup, works good now, thanks @marcocesarato (should be good to close now)!