Skip to content

Findings for the core-merge issues

Checked on 25 October 2026 against 2.x commit 4239582 (tag 2.1.0-beta2). #3562924 was Active. Its remaining tasks were still "90%+ Test Coverage" and "Alpha release", and its API note was the FormObjectBase class. #3525331 was Needs work, with 95 comments. Comment #95 (6 March 2026) was still the latest comment. The benchmark numbers on Benchmarks were not re-run for this check.

Where #3562924 stands

90%+ test coverage is not measured. This machine has no PCOV or Xdebug extension, on host PHP 8.3.30 or in the PHP 8.5 image used for the Drupal 12 run, so PHPUnit could not report line coverage. No percentage is claimed.

What was counted, on this tree:

  • 49 concrete classes and 3 abstract classes under src/Kits.
  • 38 PHPUnit files under tests/. CoreVersionRequirementTest checks formfactorykits.info.yml. The other 37 are kit tests.
  • The Drupal 12.0.0-beta2 run on 24 October 2026, PHP 8.5.12, PHPUnit 12.5.40, printed OK (203 tests, 204 assertions). That run is the latest executed suite. It was not repeated for this page.
  • These concrete classes have no test class: TableRowKit, TabKit, OptionKit, TaxonomyTermAutoCompleteKit, TaxonomyTermSelectKit, ItemKit, ExampleKit, TemplateKit, UploadValidatorKit, FileSizeUploadValidatorKit, ImageExtensionUploadValidatorKit, ImageResolutionUploadValidatorKit. FileKitTest constructs FileSizeUploadValidatorKit and ImageExtensionUploadValidatorKit. ImageResolutionUploadValidatorKit is imported by FileKitTest and ImageKitTest and is not constructed. UploadValidatorKit has no test reference. TextFieldKit and TextAreaKit do have test classes (TextFieldKitTest, TextAreaKitTest).
  • tests/src/Unit/Kits/Container/Tabs/VerticalTabsKitTest.php still has testCreateTabsWithOtherKits() commented out.
  • There are still no kernel, functional, or JavaScript tests. Nothing in the repository submits a kit-built form or rebuilds one through AJAX.

There is no alpha tag. git tag -l lists 2.0.0-beta1 through 2.0.0-beta5, 2.1.0-beta1, and 2.1.0-beta2. The issue still asks for an alpha release. The tags that exist are betas, which are later pre-releases than an alpha, and the dependency chain is still beta: composer.json requires drupal/formfactory: ^2.1@beta. A stable release is still open. See Readiness.

FormObjectBase is in the tree. It is src/Form/FormObjectBase.php, an abstract subclass of Drupal\Core\Form\FormBase. That is the API change named on #3562924. This page does not judge whether core should take that class.

Claims that changed since 4 October 2026

Readiness was written against tag 2.1.0-beta1. These sentences from that pass are now false:

Earlier claim What the tree shows now
KitTestBase overrides final assertEquals(), so the suite does not run tests/src/Unit/KitTestBase.php has no assertEquals override. phpunit.xml has no <listeners> block. The 24 October 2026 Drupal 12 run passed.
$kits->file() throws because FileKit is not imported FormFactoryKitsService::file() returns ManagedFileKit::create(...).
Four parameters are implicitly nullable grep -rnE '[(,] *(string\|int\|array) \$[A-Za-z]+ = NULL' src prints nothing.
Latest tag is 2.1.0-beta1 Latest tag is 2.1.0-beta2.
core_version_requirement stops before Drupal 12, and no Drupal version is tested The info file declares ^10.2 \|\| ^11 \|\| ^12. The unit suite has been run on Drupal 12.0.0-beta2. Drupal 10.2 and 11 were not re-run for this check, and there is still no CI.
getForm() throws if called before append() In formfactory 2.1.0-beta3 (0971922), getForm() copies $this->form, which is initialized to []. It does not throw when $kits is empty.

These claims were checked again and still hold:

  • grep -rn '&\$' src prints only FormObjectBase::validateForm() and FormObjectBase::submitForm().
  • formfactory 2.1.0-beta3 still has $this->form = &$form in FormFactoryService::load(), and load() still does not clear the service's kit list.
  • The other bugs in the readiness table (legacy upload-validator keys, non-idempotent #parents, nested #parents, getters typed too narrowly, TaxonomyTermAutoCompleteKit::setVocabulary() writing #vid) were not closed by the commits since 4 October 2026.
  • There is still no phpstan.neon and no coding-standards run was repeated. The 2,203 phpcs errors figure remains the 4 October 2026 measurement.

Merge path now names the releases this check used: formfactory 2.1.0-beta3, kits 2.0.0-beta5, query 2.0.0-beta7, formfactorykits 2.1.0-beta2. The file counts in that table were not re-counted.

Paste-ready paragraph for #3525331

Form Factory Kits 2.1.0-beta2 is the current check against #3562924. FormObjectBase is in the module. The unit suite passed on Drupal 12.0.0-beta2 (OK (203 tests, 204 assertions) on 24 October 2026). Line coverage was not measured, so the issue's "90%+ Test Coverage" task is still open, and there is no kernel or functional test of form submission or AJAX. Tags run through 2.1.0-beta2; there is no alpha tag, and formfactory, kits, and query are still beta. Kits still return a new render array with no kit objects left in it, and src/ still has no PHP references except the two FormBase signatures. The reference and the shared kit list are in formfactory 2.1.0-beta3, not in this module. The write-up, including which earlier statements are now false, is docs/core/findings.md on the formfactorykits 2.x branch (https://git.drupalcode.org/project/formfactorykits/-/blob/2.x/docs/core/findings.md — that URL is unverified until this commit is pushed).