- How do I install this package in a Laravel project?
- Run `composer require alessandro_podo/git-changelog-generator` and install Twig via `composer require twig/twig`. Since this is a Symfony bundle, you’ll need to adapt it for Laravel by registering it as a service provider and configuring it in `config/services.php` instead of `config/bundles.php`.
- Does this package work with Laravel’s Blade templating instead of Twig?
- No, the package relies on Twig for templating. You can either install Twig alongside Blade or create a custom adapter to render Twig templates using Blade. The changelog content itself is plain text, so you could also bypass Twig entirely and render the output directly.
- What Laravel versions are supported?
- This package is built for Symfony, not Laravel, so there’s no official Laravel version support. However, it may work with Laravel 8+ if you polyfill Symfony dependencies (e.g., `symfony/process` with Laravel’s `Process` facade). Test thoroughly, as Symfony’s service container differs from Laravel’s.
- Can I generate changelogs for commits from a remote Git repo (e.g., GitHub API) instead of local Git?
- No, the package assumes local Git access via `symfony/process`. For remote repos, you’d need to replace the Git command execution with a custom service that fetches commits via the GitHub/GitLab API and parses them manually before passing them to the changelog generator.
- How do I configure commit scopes (e.g., 'feat', 'fix')?
- Define scopes in the YAML config file (e.g., `config/git_changelog_generator.yaml`). Example: `scopes: [feat, fix, refactor]`. The package filters commits based on these scopes when generating the changelog. You can also add custom validation rules for commit footers under `validate_mapping`.
- Will this package slow down my CI/CD pipeline if I generate changelogs on every commit?
- Yes, parsing thousands of commits can be slow, especially in CI. Mitigate this by caching the changelog output or running the generator only on tagged releases or specific branches. Alternatively, pre-generate changelogs locally and commit the output to avoid repeated Git operations in CI.
- What if my team uses non-standard commit message formats (e.g., no footers like 'title:' or 'visibility:')?
- The package expects commit footers in a specific format (e.g., `title:`, `description:`, `visibility:`). If your team’s commits lack these, you’ll need to preprocess commit messages—either by rewriting them before generation or extending the package to parse alternative formats. Check the `validate_mapping` config for customization options.
- Are there Laravel-native alternatives to this package?
- Yes, consider `spatie/laravel-git` for Git operations or `nunomaduro/laravel-env-editor` for commit-aware tasks. For changelogs specifically, you might build a lightweight solution using Laravel’s `Process` facade to parse Git logs and generate Markdown/HTML directly, avoiding Symfony dependencies.
- How do I integrate this into Laravel’s Artisan commands?
- Since the package uses Symfony’s Console component, you’ll need to create a custom Artisan command that instantiates the `Changelog` service and calls its methods. Example: `php artisan changelog:generate` could trigger the generator and output the result to a file or console. Polyfill Symfony’s `Command` class if needed.
- Is this package actively maintained? Should I use it in production?
- The package has low community adoption (few stars/dependents), suggesting limited maintenance. Proceed with caution: audit the code for Laravel compatibility, test thoroughly in staging, and consider forking or wrapping it to reduce risks. For production, prefer battle-tested alternatives or invest in customization.