Summary
Major version bump to 3.x that drops Drupal 6 and 7 support, modernises the codebase, and introduces integration testing against real Drupal field storage using SQLite-based kernel tests.
Related PRs
Branching strategy
- Resolve all actionable open PRs against
master (v2.x).
- Tag a final
2.x release.
- Create a
3.x branch from master - this becomes the primary development branch.
- The
2.x branch enters LTS for 6 months (security fixes only, no new features). Consumers on Drupal 7 pin to ^2.0.
- Once
3.x is stable, master tracks 3.x.
Downstream impact
DrupalExtension will likely release a new major version to require drupal-driver: ^3.0. The timeline for that is not yet confirmed.
Tasks
Pre-release: resolve open PRs on v2.x
Drop legacy Drupal support
Rename Drupal8 classes
TBD: The naming strategy needs further discussion. Options include renaming to Drupal, DrupalCore, keeping version-less names, or another approach. The items below are provisional.
Replace Docker CI with setup-php
Add SQLite-based kernel test infrastructure
Add kernel tests for field handlers
Assess and simplify redundant handlers
Documentation and release
Summary
Major version bump to 3.x that drops Drupal 6 and 7 support, modernises the codebase, and introduces integration testing against real Drupal field storage using SQLite-based kernel tests.
Related PRs
Branching strategy
master(v2.x).2.xrelease.3.xbranch frommaster- this becomes the primary development branch.2.xbranch enters LTS for 6 months (security fixes only, no new features). Consumers on Drupal 7 pin to^2.0.3.xis stable,mastertracks3.x.Downstream impact
DrupalExtension will likely release a new major version to require
drupal-driver: ^3.0. The timeline for that is not yet confirmed.Tasks
Pre-release: resolve open PRs on v2.x
Drop legacy Drupal support
Drupal6.phpcore driver (Removed Drupal 6 and 7 support and bumped composer constraints for 3.x. #336)Drupal7.phpcore driver (Removed Drupal 6 and 7 support and bumped composer constraints for 3.x. #336)Fields/Drupal6/handlers (Removed Drupal 6 and 7 support and bumped composer constraints for 3.x. #336)Fields/Drupal7/handlers (Removed Drupal 6 and 7 support and bumped composer constraints for 3.x. #336)Drupal7FieldHandlerTest,FieldHandlerAbstractTestBase) (Removed Drupal 6 and 7 support and bumped composer constraints for 3.x. #336)composer.json: changedrupal/core-utilityconstraint to^10 || ^11(Removed Drupal 6 and 7 support and bumped composer constraints for 3.x. #336)composer.json: drop PHP versions below 8.2 (Removed Drupal 6 and 7 support and bumped composer constraints for 3.x. #336)Rename Drupal8 classes
Cores/Drupal8.phptoCores/Drupal.php(orDrupalCore.php)Fields/Drupal8/directory toFields/Drupal/AbstractCore::getFieldHandler()namespace resolutionReplace Docker CI with setup-php
docker-compose.ymlusage in CI withsetup-phpGitHub Actiondocker-compose.yml(or keep for local dev only)CONTRIBUTING.mdwith new local testing instructionsAdd SQLite-based kernel test infrastructure
phpunit.xml.distwith kernel test suite configurationCONTRIBUTING.mdAdd kernel tests for field handlers
EntityReferenceHandler- name-to-ID lookup, numeric ID passthrough, label_key=FALSETaxonomyTermReferenceHandler- term name-to-ID lookupDatetimeHandler- timezone conversion, date-only vs datetime, relative datesTimeHandler- strtotime conversion, numeric passthroughListStringHandler/ListIntegerHandler/ListFloatHandler- label-to-key lookupImageHandler- file entity creation from pathSupportedImageHandler- file entity creation with caption/attribution fieldsLinkHandler- named keys and numeric indices (may be simplified or removed)DefaultHandler- verify pass-through behaviour (may be simplified or removed)AddressHandler- verify address field expansionTextWithSummaryHandler- verify summary expansionEmbridgeAssetItemHandler- assess if still relevant, remove if notAssess and simplify redundant handlers
DefaultHandler- does it add value beyondreturn $values?LinkHandler- DrupalExtension already passes named keysDocumentation and release
README.md- drop D6/D7 references, document supported versions (Removed Drupal 6 and 7 support and bumped composer constraints for 3.x. #336)CHANGELOG.mdwith breaking changes (note:CHANGELOG.mditself was removed in Removed 'CHANGELOG.md' in favour of GitHub Releases. #335; release notes now live on GitHub Releases)3.0.0release