Skip to content

[TASK] Keep implementation, schema and documentation in sync - #566

Merged
nhovratov merged 2 commits into
FriendsOfTYPO3:mainfrom
schliesser:task-562-schema-sync
Sep 21, 2026
Merged

nhovratov merged 2 commits into
FriendsOfTYPO3:mainfrom
schliesser:task-562-schema-sync

Conversation

@schliesser

Copy link
Copy Markdown
Contributor

The JSON schemas, the Field Type classes and the YAML reference had drifted apart: valid configuration was rejected by content-blocks:lint, while other properties were allowed but never read at runtime.

Align all three sides:

  • Schema: add sortItems (Country), default (Pass, Language), size (DateTime), format and mode (Textarea), localizeReferencesAtParent- Localization (Collection), ignoreIfNotInPalette (Linebreak); drop valuePicker (Country) and default (Slug); correct the required default of Uuid.
  • Implementation: honour size (Email), required (Uuid), autoSizeMax (Select) and valuePicker (Textarea); drop appearance (Relation), which TCA type "group" does not evaluate.
  • Support itemsProcFunc, itemsProcessors and itemsProcConfig for SelectText and SelectNumber, which core resolves for every TCA type "select" regardless of renderType.

Add two guards so the three sides cannot drift again: SchemaFieldTypeSyncTest covers schema <-> implementation, and Build/Scripts/checkDocumentationSync.php reports schema <-> documentation. Both derive Field Types, their settings, their schema branch and the centrally declared properties from the sources themselves, so adding a Field Type needs no bookkeeping.

Resolves: #562

@nhovratov

Copy link
Copy Markdown
Contributor

@schliesser thanks! This is massive.. will need to check and verify whether these are all valid.

Regarding SelectText and SelectNumber: These are by intention without item processors, so the DefaultSchema can automatically derive a varchar / int DB field. So this can be removed again.

Give me some time to read this thoroughly.

@schliesser

schliesser commented Sep 18, 2026

Copy link
Copy Markdown
Contributor Author

@nhovratov thank you very much for reviewing it. Yes it got massive quiet quickly 🙈

The SelectText and SelectNumber fields have no item processors anymore. SelectText did make use of Trait WithCustomProperties, which is removed now.

Let me know what else to change :-)

@nhovratov

Copy link
Copy Markdown
Contributor

@schliesser Perfect. I only removed required from type Language, which was wrong all along. I think we can keep your tests. They are quite useful to have for contribution.

@nhovratov
nhovratov merged commit 3508621 into FriendsOfTYPO3:main Sep 21, 2026
11 checks passed
@schliesser
schliesser deleted the task-562-schema-sync branch September 21, 2026 16:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

JSON schema is out of sync with the field type classes

2 participants