-
Notifications
You must be signed in to change notification settings - Fork 152
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Checking mergeability…
Don’t worry, you can still create the pull request.
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: jobbyphp/jobby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: FernleafSystems/jobby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 10 commits
- 30 files changed
- 1 contributor
Commits on Jan 23, 2026
-
feat!: Upgrade to PHP 8.2+, Symfony 6.4+, and replace SwiftMailer wit…
…h Symfony Mailer BREAKING CHANGES: - Minimum PHP version raised from 5.6 to 8.2 - SwiftMailer replaced with Symfony Mailer - Helper constructor signature: ?MailerInterface instead of ?\Swift_Mailer - Helper::sendMail() returns Symfony\Component\Mime\Email instead of Swift_Message - SerializableClosure wrapper no longer supported (pass raw closures directly) ## Dependency Updates - php: ^8.2 - symfony/mailer: ^6.4|^7.0|^8.0 (new, replaces swiftmailer/swiftmailer) - symfony/process: ^6.4|^7.0|^8.0 - symfony/filesystem: ^6.4|^7.0|^8.0 (dev) - dragonmantank/cron-expression: ^3.6 - opis/closure: ^3.6|^4.0 - phpunit/phpunit: ^10.5|^11.0 (dev) Removed: - swiftmailer/swiftmailer (abandoned) - mp091689/dump-die (dev dependency) ## Core Changes ### src/Helper.php - Complete mailer rewrite using Symfony Mailer - New buildMailerDsn() method converts config to Symfony DSN format - SMTP security mapping preserved from SwiftMailer behavior: - 'ssl' → smtps:// (implicit TLS, port 465) - 'tls' → smtp:// (STARTTLS auto-negotiated, port 587) - null → smtp:// (plain or STARTTLS if available) - Credentials properly URL-encoded for special characters ### src/Jobby.php - Opis Closure 4.x compatibility: use serialize() function instead of SerializableClosure class (which now has private constructor) - Modernized array destructuring syntax ### src/BackgroundJob.php - Opis Closure 4.x compatibility: use unserialize() function - PHP 8.2+ constructor property promotion - Fixed implicit nullable parameter deprecation ### src/ScheduleChecker.php - CronExpression::factory() replaced with direct instantiation - PHP 8.2+ constructor property promotion - Fixed implicit nullable parameter deprecation ## Test Updates All test files migrated to PHPUnit 10/11: - setUp()/tearDown() return type declarations - @ExpectedException annotations → expectException() method calls - assertContains() for strings → assertStringContainsString() - assertInternalType() → assertIsArray(), assertIsString(), etc. - Static data providers (PHP 8.1+ requirement) ### tests/HelperTest.php - Mailer tests updated for Symfony Mailer mock (MailerInterface) - Added 7 parameterized DSN building tests covering: - sendmail, mail (native), smtp plain - smtp with auth, smtp with TLS, smtps with SSL - Special characters in credentials ### tests/BackgroundJobTest.php - Restored meaningful closure test (built-in function calls) - Updated mock setup for new Helper interface ### tests/JobbyTest.php - Added Opis Closure function imports - Verified closure serialization roundtrip ## Configuration ### phpunit.xml - Updated to PHPUnit 10+ schema - Replaced <filter><whitelist> with <source><include> - Added cacheDirectory for test performance ### .github/workflows/tests.yml (new) - CI matrix: PHP 8.2, 8.3, 8.4 - Symfony version matrix: 6.4, 7.0, 8.0 - Excludes PHP 8.2/8.3 with Symfony 8.0 (requires 8.4+) ## Documentation ### UPGRADE-3.0.md (new) - Complete migration guide for users upgrading from 2.x - SMTP security behavior documentation - Code examples for Helper class extension - Migration checklist ### README.md - Updated requirements section - Fork notice and attribution - Reference to upgrade guide ## Verification - 70 tests, 96 assertions, all passing - 5 skipped (platform-specific tests) - Tested on PHP 8.4.16 - Full closure serialization flow verified - All SMTP DSN configurations verifiedConfiguration menu - View commit details
-
Copy full SHA for cec7203 - Browse repository at this point
Copy the full SHA cec7203View commit details
Commits on Jan 26, 2026
-
feat!: Upgrade to PHP 8.3+, PHPUnit 12, and add PHP 8.5 support
BREAKING CHANGES: - Minimum PHP version increased from 8.2 to 8.3 - PHPUnit requirement changed from ^10.5|^11.0 to ^12.0 Changes: - Update composer.json PHP requirement to ^8.3 - Update composer.json PHPUnit requirement to ^12.0 - Add PHP 8.5 to CI test matrix - Convert PHPUnit annotations to PHP 8 attributes across all test files - Fix PHP 8.5 strict typing: cast getmypid() to string for fwrite() - Fix PHP 8.5 strict typing: add null check before is_file() call - Add explicit return type string|false to BackgroundJob::getLogfile() - Add UPGRADE-4.0.md migration guide
Configuration menu - View commit details
-
Copy full SHA for ae6c4a2 - Browse repository at this point
Copy the full SHA ae6c4a2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 340cb3a - Browse repository at this point
Copy the full SHA 340cb3aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8acc432 - Browse repository at this point
Copy the full SHA 8acc432View commit details -
feat!: Abstract mailer implementation behind MailerInterface
Introduce Jobby\Mailer\MailerInterface to decouple job failure notifications from Symfony Mailer, allowing users to implement custom mailers (PHPMailer, native mail(), etc.). New components: - MailerInterface: defines send() contract for notifications - SymfonyMailerAdapter: default implementation using Symfony Mailer - NullMailer: no-op implementation for testing with mail recording Changes to Helper: - Constructor accepts MailerInterface|SymfonyMailerInterface|null - sendMail() now returns void instead of Email (BREAKING) - Email building logic moved to SymfonyMailerAdapter BREAKING CHANGE: Helper::sendMail() return type changed from Email to void. Test code asserting on the returned Email object must be updated to use NullMailer or mock MailerInterface instead.
Configuration menu - View commit details
-
Copy full SHA for 85d21c7 - Browse repository at this point
Copy the full SHA 85d21c7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3957cd8 - Browse repository at this point
Copy the full SHA 3957cd8View commit details -
Configuration menu - View commit details
-
Copy full SHA for bdd8983 - Browse repository at this point
Copy the full SHA bdd8983View commit details -
Configuration menu - View commit details
-
Copy full SHA for a8c6d7f - Browse repository at this point
Copy the full SHA a8c6d7fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 075add9 - Browse repository at this point
Copy the full SHA 075add9View commit details -
Configuration menu - View commit details
-
Copy full SHA for b33253a - Browse repository at this point
Copy the full SHA b33253aView commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff master...master