Skip to content

Commit 86e5353

Browse files
author
nejc
committed
docs: Update README with comprehensive features and modern architecture
- Add LaravelPlus community section with welcome message - Update feature list with detailed categorization - Add comprehensive testing section with 97 test cases - Include code quality tools (PHPStan, Rector, Pint, Pest) - Add architecture highlights (strict types, interfaces, services) - Update requirements to PHP 8.4 and Laravel 12 - Add development setup and contributing guidelines - Include package statistics and roadmap - Enhance support section with community links - Add modern badges for tests and code quality
1 parent ddb5723 commit 86e5353

File tree

1 file changed

+181
-31
lines changed

1 file changed

+181
-31
lines changed

README.md

Lines changed: 181 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,64 @@
1-
# Laravel Updater
1+
# LaravelPlus Updater
22

33
[![Latest Version on Packagist](https://img.shields.io/packagist/v/laravelplus/laravel-updater.svg?style=flat-square)](https://packagist.org/packages/laravelplus/laravel-updater)
44
[![Total Downloads](https://img.shields.io/packagist/dt/laravelplus/laravel-updater.svg?style=flat-square)](https://packagist.org/packages/laravelplus/laravel-updater)
55
[![License](https://img.shields.io/packagist/l/laravelplus/laravel-updater.svg?style=flat-square)](https://packagist.org/packages/laravelplus/laravel-updater)
66
[![PHP Version](https://img.shields.io/badge/PHP-8.4%2B-blue.svg?style=flat-square)](https://packagist.org/packages/laravelplus/laravel-updater)
7-
[![Laravel Version](https://img.shields.io/badge/Laravel-10.0%2B-red.svg?style=flat-square)](https://laravel.com)
7+
[![Laravel Version](https://img.shields.io/badge/Laravel-12.0%2B-red.svg?style=flat-square)](https://laravel.com)
88
[![GitHub Stars](https://img.shields.io/github/stars/LaravelPlus/laravel-updater.svg?style=flat-square)](https://github.com/LaravelPlus/laravel-updater)
99
[![GitHub Issues](https://img.shields.io/github/issues/LaravelPlus/laravel-updater.svg?style=flat-square)](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+
[![Tests](https://img.shields.io/badge/tests-97%20test%20cases-green.svg?style=flat-square)](https://github.com/LaravelPlus/laravel-updater)
11+
[![Code Quality](https://img.shields.io/badge/code%20quality-PHPStan%20%7C%20Rector%20%7C%20Pint-blue.svg?style=flat-square)](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
2662

2763
## Installation
2864

@@ -411,30 +447,144 @@ Interactive setup wizard for configuring the package.
411447
| `--pr-title=` | Override PR title (laravelplus:pr only) |
412448
| `--pr-body=` | Override PR body (laravelplus:pr only) |
413449

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+
```
415473

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
416493
- 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
420527

421528
## License
422529

423530
This package is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
424531

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
426567

427-
Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.
568+
## 🏆 Credits
428569

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
430573

431-
Please see [CHANGELOG.md](CHANGELOG.md) for more information on what has changed recently.
574+
## 📞 Support
432575

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!
434581

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
437587

438-
## Support
588+
---
439589

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

Comments
 (0)