|
1 | | -# Laravel Updater |
| 1 | +# LaravelPlus Updater |
2 | 2 |
|
3 | 3 | [](https://packagist.org/packages/laravelplus/laravel-updater) |
4 | 4 | [](https://packagist.org/packages/laravelplus/laravel-updater) |
5 | 5 | [](https://packagist.org/packages/laravelplus/laravel-updater) |
6 | 6 | [](https://packagist.org/packages/laravelplus/laravel-updater) |
7 | | -[](https://laravel.com) |
| 7 | +[](https://laravel.com) |
8 | 8 | [](https://github.com/LaravelPlus/laravel-updater) |
9 | 9 | [](https://github.com/LaravelPlus/laravel-updater/issues) |
10 | | - |
11 | | -A Laravel package for syncing with upstream repositories (GitHub, GitLab, Bitbucket, etc.) with comprehensive testing and hook support. Perfect for keeping your Laravel starter kit projects up to date! |
12 | | - |
13 | | -## Features |
14 | | - |
15 | | -- 🔄 **Sync with any Git repository** - GitHub, GitLab, Bitbucket, Azure DevOps, self-hosted |
16 | | -- 🧪 **Built-in testing** - Validate configuration and connectivity before syncing |
17 | | -- 🔀 **Multiple strategies** - Support for both merge and rebase strategies |
18 | | -- 🪝 **Pre/Post hooks** - Run custom commands before and after sync |
19 | | -- 🛡️ **Safe operations** - Dry-run mode and comprehensive error handling |
20 | | -- ⚙️ **Flexible configuration** - Environment variables and command-line overrides |
21 | | -- 🚀 **Production ready** - Timeout protection and proper error handling |
22 | | -- 🎯 **Starter Kit Support** - Pre-configured for all official Laravel starter kits |
23 | | -- 🔧 **Easy Setup** - Interactive setup command for quick configuration |
24 | | -- 🔀 **Pull Request Workflow** - Create PRs instead of direct merges for safer updates |
25 | | -- 🤖 **GitHub Integration** - Automatic PR creation with GitHub API |
| 10 | +[](https://github.com/LaravelPlus/laravel-updater) |
| 11 | +[](https://github.com/LaravelPlus/laravel-updater) |
| 12 | + |
| 13 | +A professional Laravel package for syncing with upstream repositories (GitHub, GitLab, Bitbucket, etc.) with comprehensive testing, modern architecture, and enterprise-grade features. Perfect for keeping your Laravel starter kit projects up to date! |
| 14 | + |
| 15 | +## 🚀 LaravelPlus Community |
| 16 | + |
| 17 | +Welcome to the **LaravelPlus** community! We're building tools that make Laravel development more enjoyable and productive. Join our community and help shape the future of Laravel tooling. |
| 18 | + |
| 19 | +- 🌟 **Star us on GitHub** - Help us grow the community |
| 20 | +- 🐛 **Report issues** - Help us improve the tools |
| 21 | +- 💡 **Suggest features** - Share your ideas |
| 22 | +- 🤝 **Contribute** - Make Laravel better for everyone |
| 23 | + |
| 24 | +## ✨ Features |
| 25 | + |
| 26 | +### 🔄 **Core Functionality** |
| 27 | +- **Universal Git Support** - GitHub, GitLab, Bitbucket, Azure DevOps, self-hosted |
| 28 | +- **Multiple Strategies** - Support for both merge and rebase strategies |
| 29 | +- **Smart Branch Management** - Automatic branch detection and creation |
| 30 | +- **Safe Operations** - Dry-run mode and comprehensive error handling |
| 31 | + |
| 32 | +### 🧪 **Testing & Quality** |
| 33 | +- **Comprehensive Test Suite** - 97 test cases covering all functionality |
| 34 | +- **Built-in Testing** - Validate configuration and connectivity before syncing |
| 35 | +- **Code Quality Tools** - PHPStan, Rector, and Laravel Pint integration |
| 36 | +- **Modern Testing** - Pest PHP with Laravel Testbench |
| 37 | + |
| 38 | +### 🎯 **Starter Kit Support** |
| 39 | +- **Pre-configured Presets** - Vue, React, Livewire starter kits |
| 40 | +- **Auto-detection** - Automatically detect and configure your starter kit |
| 41 | +- **Custom Repositories** - Support for any custom Laravel starter kit |
| 42 | +- **Easy Setup** - Interactive setup command with beautiful prompts |
| 43 | + |
| 44 | +### 🔀 **Advanced Workflows** |
| 45 | +- **Pull Request Workflow** - Create PRs instead of direct merges for safer updates |
| 46 | +- **GitHub Integration** - Automatic PR creation with GitHub API |
| 47 | +- **Pre/Post Hooks** - Run custom commands before and after sync |
| 48 | +- **Flexible Configuration** - Environment variables and command-line overrides |
| 49 | + |
| 50 | +### 🏗️ **Modern Architecture** |
| 51 | +- **PHP 8.4 Features** - Strict types, readonly properties, constructor promotion |
| 52 | +- **Interface-based Design** - Clean contracts and abstractions |
| 53 | +- **Service Layer** - Separated business logic from commands |
| 54 | +- **Exception Handling** - Custom exceptions with detailed error messages |
| 55 | +- **Laravel Prompts** - Beautiful command-line interfaces with fallbacks |
| 56 | + |
| 57 | +### 🚀 **Production Ready** |
| 58 | +- **Timeout Protection** - Prevents hanging operations |
| 59 | +- **Memory Management** - Optimized for large repositories |
| 60 | +- **Error Recovery** - Graceful handling of network and Git issues |
| 61 | +- **Logging & Debugging** - Comprehensive logging for troubleshooting |
26 | 62 |
|
27 | 63 | ## Installation |
28 | 64 |
|
@@ -411,30 +447,144 @@ Interactive setup wizard for configuring the package. |
411 | 447 | | `--pr-title=` | Override PR title (laravelplus:pr only) | |
412 | 448 | | `--pr-body=` | Override PR body (laravelplus:pr only) | |
413 | 449 |
|
414 | | -## Requirements |
| 450 | +## 🧪 Testing |
| 451 | + |
| 452 | +This package includes a comprehensive test suite with **97 test cases** covering all functionality: |
| 453 | + |
| 454 | +### Test Coverage |
| 455 | +- **Unit Tests** - Core components, services, and utilities |
| 456 | +- **Feature Tests** - Command integration and Laravel functionality |
| 457 | +- **Integration Tests** - Service provider and configuration |
| 458 | +- **Exception Tests** - Error handling and edge cases |
| 459 | + |
| 460 | +### Running Tests |
| 461 | +```bash |
| 462 | +# Run all tests |
| 463 | +composer test |
| 464 | + |
| 465 | +# Run specific test suites |
| 466 | +composer test:unit |
| 467 | +composer test:lint |
| 468 | +composer test:types |
| 469 | + |
| 470 | +# Run with coverage |
| 471 | +vendor/bin/pest --coverage |
| 472 | +``` |
415 | 473 |
|
| 474 | +### Code Quality |
| 475 | +The package maintains high code quality standards with: |
| 476 | +- **PHPStan** - Static analysis (Level 8) with strict type checking |
| 477 | +- **Rector** - Code modernization and PHP 8.4 feature adoption |
| 478 | +- **Laravel Pint** - Code style enforcement with Laravel standards |
| 479 | +- **Pest PHP** - Modern testing framework with Laravel integration |
| 480 | + |
| 481 | +### Architecture Highlights |
| 482 | +- **Strict Types** - `declare(strict_types=1)` throughout the codebase |
| 483 | +- **Interface-based Design** - Clean contracts for all major components |
| 484 | +- **Service Layer** - Separated business logic from command classes |
| 485 | +- **Custom Exceptions** - Detailed error handling with specific exception types |
| 486 | +- **Trait-based Reusability** - Common functionality extracted into traits |
| 487 | +- **Constructor Property Promotion** - Modern PHP 8.4 syntax |
| 488 | +- **Readonly Properties** - Immutable data structures where appropriate |
| 489 | + |
| 490 | +## 🛠️ Development |
| 491 | + |
| 492 | +### Prerequisites |
416 | 493 | - PHP 8.4+ |
417 | | -- Laravel 10.0+ |
418 | | -- Git installed and accessible |
419 | | -- Valid Git repository |
| 494 | +- Composer |
| 495 | +- Git |
| 496 | + |
| 497 | +### Development Setup |
| 498 | +```bash |
| 499 | +# Clone the repository |
| 500 | +git clone https://github.com/LaravelPlus/laravel-updater.git |
| 501 | +cd laravel-updater |
| 502 | + |
| 503 | +# Install dependencies |
| 504 | +composer install |
| 505 | + |
| 506 | +# Run tests |
| 507 | +composer test |
| 508 | + |
| 509 | +# Check code quality |
| 510 | +composer test:lint |
| 511 | +composer test:types |
| 512 | +``` |
| 513 | + |
| 514 | +### Contributing |
| 515 | +We welcome contributions! Please see our [Development Guide](DEVELOPMENT.md) for detailed information on: |
| 516 | +- Code style and standards |
| 517 | +- Testing requirements |
| 518 | +- Pull request process |
| 519 | +- Issue reporting |
| 520 | + |
| 521 | +## Requirements |
| 522 | + |
| 523 | +- **PHP 8.4+** - Latest PHP features and performance |
| 524 | +- **Laravel 12.0+** - Latest Laravel framework |
| 525 | +- **Git** - Installed and accessible in PATH |
| 526 | +- **Valid Git Repository** - Working directory must be a Git repository |
420 | 527 |
|
421 | 528 | ## License |
422 | 529 |
|
423 | 530 | This package is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT). |
424 | 531 |
|
425 | | -## Contributing |
| 532 | +## 📊 Package Statistics |
| 533 | + |
| 534 | +- **97 Test Cases** - Comprehensive test coverage |
| 535 | +- **Modern Architecture** - PHP 8.4 + Laravel 12 |
| 536 | +- **Code Quality** - PHPStan Level 8 + Rector + Pint |
| 537 | +- **Zero Dependencies** - Only Laravel framework dependencies |
| 538 | +- **Universal Support** - Works with any Git hosting service |
| 539 | + |
| 540 | +## 🤝 Contributing |
| 541 | + |
| 542 | +We welcome contributions from the community! Here's how you can help: |
| 543 | + |
| 544 | +### Ways to Contribute |
| 545 | +- 🐛 **Report Bugs** - Help us identify and fix issues |
| 546 | +- 💡 **Suggest Features** - Share your ideas for improvements |
| 547 | +- 📝 **Improve Documentation** - Help others understand the package |
| 548 | +- 🧪 **Add Tests** - Increase test coverage and reliability |
| 549 | +- 🔧 **Fix Issues** - Submit pull requests for bug fixes |
| 550 | + |
| 551 | +### Development Process |
| 552 | +1. Fork the repository |
| 553 | +2. Create a feature branch |
| 554 | +3. Make your changes |
| 555 | +4. Add tests for new functionality |
| 556 | +5. Ensure all tests pass |
| 557 | +6. Submit a pull request |
| 558 | + |
| 559 | +## 📈 Roadmap |
| 560 | + |
| 561 | +### Upcoming Features |
| 562 | +- 🔄 **GitLab Integration** - Direct GitLab API support |
| 563 | +- 📊 **Analytics Dashboard** - Track sync history and statistics |
| 564 | +- 🔔 **Notifications** - Slack/Discord integration for sync events |
| 565 | +- 🎨 **Custom Themes** - Beautiful command-line interfaces |
| 566 | +- 🔐 **Enhanced Security** - GPG signing and verification |
426 | 567 |
|
427 | | -Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details. |
| 568 | +## 🏆 Credits |
428 | 569 |
|
429 | | -## Changelog |
| 570 | +- **[LaravelPlus](https://github.com/laravelplus)** - The LaravelPlus community |
| 571 | +- **[All Contributors](../../contributors)** - Thank you to everyone who contributes |
| 572 | +- **[Laravel Framework](https://laravel.com)** - Built on the amazing Laravel framework |
430 | 573 |
|
431 | | -Please see [CHANGELOG.md](CHANGELOG.md) for more information on what has changed recently. |
| 574 | +## 📞 Support |
432 | 575 |
|
433 | | -## Credits |
| 576 | +### Getting Help |
| 577 | +- 📖 **Documentation** - Check this README and [DEVELOPMENT.md](DEVELOPMENT.md) |
| 578 | +- 🐛 **Bug Reports** - [GitHub Issues](https://github.com/LaravelPlus/laravel-updater/issues) |
| 579 | +- 💬 **Discussions** - [GitHub Discussions](https://github.com/LaravelPlus/laravel-updater/discussions) |
| 580 | +- ⭐ **Star the Project** - Show your support! |
434 | 581 |
|
435 | | -- [LaravelPlus](https://github.com/laravelplus) |
436 | | -- [All Contributors](../../contributors) |
| 582 | +### Community |
| 583 | +Join the LaravelPlus community and help us build amazing Laravel tools: |
| 584 | +- 🌟 **Star us on GitHub** - Help us grow |
| 585 | +- 🐦 **Follow us** - Stay updated on new features |
| 586 | +- 💡 **Share feedback** - Help us improve |
437 | 587 |
|
438 | | -## Support |
| 588 | +--- |
439 | 589 |
|
440 | | -If you discover any issues, please use the [issue tracker](https://github.com/laravelplus/laravel-updater/issues) on GitHub. |
| 590 | +**Made with ❤️ by the LaravelPlus community** |
0 commit comments