Uncaught PHP Exception Drupal\Core\Config\Schema\SchemaIncompleteException: "Schema errors for optimizely.settings with the following errors: optimizely.settings:langcode missing schema" at /var/www/html/opti/core/lib/Drupal/Core/Config/Testing/ConfigSchemaChecker.php line 98In this message, optimizely.settings is the name of a group of configuration settings. It is also a configuration key in a .schema.yml file that is required for automated testing, which I blogged about earlier at Beta 3 --> Beta 4: Configuration schema and metadata.
The article Fix config schema mentioned a very similar error message and stated "Because of a recent core change all tests are failing". I looked at the patches in that article, but I could not figure out what needed to be added in our case.
Then a search through the core code for the string "langcode:" led me to add langcode: as a key to the .schema.yml file as in the following.
optimizely.settings:
type: mapping
label: 'Optimizely Config Data'
mapping:
optimizely_id:
type: integer
label: 'Optimizely ID Number'
translatable: false
langcode:
type: string
label: 'Language code'
Problem solved. All automated tests passed after this change.
Update: Also see my later post on Module: Configuration Inspector for Drupal 8.
Sources:
Beta 3 --> Beta 4: Configuration schema and metadata
http://optimizely-to-drupal-8.blogspot.com/2014/12/beta-3-beta-4-configuration-schema-and.html
Fix config schema
https://www.drupal.org/node/2547365
All TestBase derived tests now enforce strict configuration schema adherence by default
https://www.drupal.org/node/2391795
Configuration schema/metadata
https://www.drupal.org/node/1905070
Interesting! This seems to be at the root of the localization efforts in D8. I'd love to more of your thoughts on this as it seems like an important issue for any schema design where language has become a basic consideration.
ReplyDelete