Issue summary contents:
# Docs
# Steps to test and review the sub issues
# Views issue list
# Field issue list
# Round 1 issue list

Problem/motivation

#1866610: Introduce Kwalify-inspired schema format for configuration introduced some config schema coverage for views, contact module, image effects, etc. but it is/was not complete. We need to continue introducing schemas and complete schemas where not yet complete.

Proposed solution

Solve this in sub-issues. Add more issues as identified. Existing conversions issues don't need to apply the schema if they cannot or do not want to fit this in their scope. We need followups for them in that case.

Remaining tasks

Name Issue

Configuration#

system #2107689: Complete configuration schema for system module

Views(Ref) #

Plugins
sort #2019093: Complete Configuration schemas for views sort
row #2019091: Complete Configuration schemas for views row
filter #2019085: Complete Configuration schemas for views filters
field #2019079: Complete Configuration schemas for views fields
arugment #2019069: Complete Configuration schemas for views arguments Assigned to: deepakaryan1988
Modules
field #1992892: Provide config schema to views components in taxonomy module
arugment #1991260: Provide config schema to views components in node module

Field (Ref)#

link #1983906: Provide config schema to field types and storage in link module
telephone #1983912: Provide config schema to field types and storage in telephone module

Entity #

Entity display #2096365: Provide config schema for Entity displays
Entity form display #2096367: Provide config schema for Entity form displays

Fields: All existing patches on these issues needs work as they still contain the widget config schema, but that does not exist anymore for the instances.

Completed tasks


Third round #

- #2107693: Provide configuration schema for views.settings + update views.settings to reflect current configuration setup
- #1973522: Provide config schema to field types and storage in file module
- #1973436: Provide config schema to field types storage for image module Assigned to: claudiu.cristea
- #2096371: Provide config schema for Form modes
- #1973534: Provide config schema to field types and storage in datetime module
- #2107681: Create configuration schema for RDF module
- #2107685: Provide configuration schema for Simpletest module
- #2107687: Provide configuration schema for Rest module
- #1992894: Provide config schema to views components in user module
- #2096373: Provide config schema for View modes Assigned to: sushantpaste
- #1983902: Provide config schema to field types, widgets and storage in entity_reference module


Second round #

- #2038285: Update configuration schema for date formats as entities
- #2031185: Create configuration schema for language config entity
- #2033971: system.schema.yml should have a schema snippet for system.language.types Assigned to: e0ipso
- #2029405: Write configuration schema for node types
- #2019095: Complete Configuration schemas for views style
- #2019087: Complete Configuration schemas for views relationship Assigned to: dropfen
- #2019077: Complete Configuration schemas for views display extender
- #1973450: Provide config schema to field types and storage in number module
- #1973498: Provide config schema to field types and storage in taxonomy module Assigned to: saki007ster
- #1983894: Provide config schema to field types and storage in email module
- #2013891: Remove widget config schema from text, options and field modules


First round #

- #1910606: Improve the configurations schemas for Views significantly
- #1912250: Complete configuration schemas for system module
- #1912258: Complete configuration schemas for user module
- #1912266: Create configuration schemas for action module
- #1912298: Create configuration schemas for aggregator module
- #1912302: Create configuration schemas for book module
- #1912308: Create configuration schemas for breakpoint module
- #1912316: Create configuration schemas for dblog module
- #1964648: Create configuration schemas for editor module
- #1919164: Create configuration schemas for field module
- #1919166: Create configuration schemas for file module
- #1919174: Create configuration schemas for filter module
- #1919176: Create configuration schemas for forum module
- #1919178: Create configuration schemas for language module
- #1919180: Create configuration schemas for locale module
- #1919184: Create configuration schemas for menu module
- #1919186: Create configuration schemas for node module
- #1919188: Create configuration schemas for openid module
- #1919192: Create configuration schemas for php module
- #1964592: Create configuration schemas for picture module
- #1919194: Create configuration schemas for rest module
- #1919196: Create configuration schemas for search module
- #1919198: Create configuration schemas for shortcut module
- #1919200: Create configuration schemas for simpletest module
- #1919202: Create configuration schemas for statistics module
- #1919206: Create configuration schemas for syslog module
- #1919208: Create configuration schemas for taxonomy module
- #1919210: Create configuration schemas for text module
- #1919212: Create configuration schemas for toolbar module
- #1919214: Create configuration schemas for tracker module
- #1919216: Create configuration schemas for translation module
- #1919218: Create configuration schemas for update module
- #1935094: Create configuration schemas for Tour module

From the original patch that was committed (not all of these are necessarily complete, double checking helps):


Documentation #

Format and API documentation can be found at http://drupal.org/node/1905070.
Slightly related as the schema refers to config standards, but we dont have config standards yet: #1948284: [policy no patch] config save format and default yml file format and coding standards


Steps to test and review the sub issues #

#1921348: Started updating to latest typed data system will help. See the instructions below, with screenshots in #9

If there is a syntax error, then the testbot will fail to install. So the testbot is good for telling us if there is a syntax error.

Manually test by (these steps need work):

  1. visually inspect schemas by looking at the yml files.
  2. open data .yml file
  3. open schema .yml file in another window
  4. compare that the schema describes the data manually, with your eyes comparing the two files in the two windows
  5. use http://drupal.org/project/config_inspector

Look also for integer vs Boolean or Mapping vs sequence errors

(Is the next part necessary?)

  1. changing some setting in the ui that relates to the yml data
  2. then looking in the yml to see if it changed ok
  3. check the functionality worked after changing config

Follow-up Issues

Comments

Gábor Hojtsy’s picture

Issue summary: View changes

Add docs link

Gábor Hojtsy’s picture

Linked schema files that were already committed with the original patch above. We do know the views schema is incomplete and already have #1910606: Improve the configurations schemas for Views significantly for that. The rest can use double checking.

heyrocker’s picture

Issue tags: +Configuration system
heyrocker’s picture

Issue summary: View changes

Add original patch files

heyrocker’s picture

Issue summary: View changes

Updated issue summary.

heyrocker’s picture

Issue summary: View changes

Updated issue summary.

heyrocker’s picture

Issue summary: View changes

Updated issue summary.

heyrocker’s picture

Issue summary: View changes

Updated issue summary.

heyrocker’s picture

Issue summary: View changes

Updated issue summary.

larowlan’s picture

If it gets into core, we need to add #1809352: Write tour.module and add it to core to this list

Gábor Hojtsy’s picture

Tagging for configuration schema (instead of sprint).

Gábor Hojtsy’s picture

Issue summary: View changes

Updated issue summary.

vijaycs85’s picture

Issue summary: View changes

Adding issue for modules (from field to update).

Gábor Hojtsy’s picture

BTW as per current state of discussion in #1919200: Create configuration schemas for simpletest module, we don't have an immediate use-case for developer-only modules to have language or context sensitive value overrides for their configuration, so adding schemas is no immediate need there. Please say so if you believe that should not be the case :)

YesCT’s picture

Issue summary: View changes

Updated issue summary, adding initial draft of steps to test/review

YesCT’s picture

Issue summary: View changes

Updated issue summary, adding #steps-to-test

YesCT’s picture

Issue summary: View changes

Updated issue summary, uh, trying html

YesCT’s picture

Issue summary: View changes

Updated issue summary steps to review/test

YesCT’s picture

I updated steps to test/review in the summary

YesCT’s picture

#1648930: Introduce configuration schema and use for translation had a test drive the patch section in the issue summary that might have some inspiration for steps to test/review instructions.
(and I might go back and read some of my reviews to see what I did, or what people said was helpful)

Gábor Hojtsy’s picture

All right, I've updated the Drupal 8 configuration schema inspector module at http://drupal.org/sandbox/reyero/1635230 (later promoted to http://drupal.org/project/config_inspector) so now it fully runs on Drupal 8 (check out the only available branch, master). It provides a "Configuration inspector" tool at Admin > Reports, that can be used to inspect config data in the light of its schema. There are various ways you can find missing pieces and bugs with schemas using this tool. It provides a raw dump as well as a list table, a nested tree and a form autogenerated from the config data based on schema.

Here are example issues found with the inspector:

1. Raw data inspector for the contact module category shipped with core. Shows items in data that are not described in schema. (These data pieces will not show at all in the list, form or tree views since they are not accessible via the schema).
Screenshot_2_20_13_12_54_PM.png

2. Form inspection for the same config. Shows the lack of labels makes it impossible to generate a translation form. (An actual translation form would not contain all the items from config, but this schema has no labels whatsoever).
Screenshot_2_20_13_12_56_PM.png

3. Raw data inspection on the contact module master settings shows an item in the schema that is defined at an incorrect level. This makes the data inaccessible like if it was not defined, since it does not have a definition at the right place. I've already opened #1922178: Fix issues in contact module configuration schema when I found this.
Screenshot_2_20_13_12_57_PM.png

I think it would be great if the list/tree/form browsers could expose data even on levels where they don't have a schema, that would make it even easier to test. However, this should be good as a starting point now to find and fix issues both in existing schemas and in the proposed schemas.

Gábor Hojtsy’s picture

(Also note for followers, vijaycs85 has been busy opening more issues, see above in issue summary and http://www.drupal8multilingual.org/issues/schema)

Gábor Hojtsy’s picture

Issue summary: View changes

Updated issue summary test instructions

dags’s picture

@Gábor Hojtsy, Config Inspector ignores definitions with class ="\Drupal\Core\Config\Schema\Property" ... How are definitions with that class different from a Mapping? Why are they ignored? And how can I test the patch in #1919210: Create configuration schemas for text module?

Gábor Hojtsy’s picture

@dags: can you cite a valid example where that type is used as a result of schema being in place for the data? As far as I've seen the code, this would directly be used only if the (portion of the) data had no schema (and could not be detected as string). We've actually added some extensive test coverage for that at #1905230: Improve the typed data API usage of configuration schema.

Gábor Hojtsy’s picture

FYI for followers: #1914366: Move all configuration schema files into a schema subdirectory landed, the schema files have a new location.

Gábor Hojtsy’s picture

Issue summary: View changes

added to instructions that the inspector works and link to gabor's comment showing screenshots

Gábor Hojtsy’s picture

Due to popular request, promoted the config inspector module to a full project. See http://drupal.org/project/config_inspector

Gábor Hojtsy’s picture

Issue summary: View changes

Updated issue summary, added marker to use as handle for #steps-to-test

dsnopek’s picture

Should the labels in the config schema match the labels on the settings form?

I started reviewing the patch for #1919202: Create configuration schemas for statistics module and I noticed several labels that were fine, but they're not the same as on the admin form. Should we be attempting to match them? Or will anything that's reasonably descriptive do?

UPDATE: Here is my review on the statistics config schema patch in case you're interested in the specific labels and how they differ from the admin forms: http://drupal.org/node/1919202#comment-7150448

dsnopek’s picture

In person at the sprint in Chicago, YesCT told me that we should strive to match the labels between the schema and admin forms where possible!

YesCT’s picture

YesCT’s picture

Issue summary: View changes

Updated issue summary with tour module

Gábor Hojtsy’s picture

Opened #1948884: Create configuration schemas for block and custom_block modules and re-opened #1919208: Create configuration schemas for taxonomy module because it did not cover taxonomy vocabulary entities, so they are not yet translatable.

Gábor Hojtsy’s picture

Status: Active » Fixed

#1935094: Create configuration schemas for Tour module and #1910606: Improve the configurations schemas for Views significantly remain the only two remaining issues for now. Upcoming conversions to config like #111715: Convert node/content types into configuration need their own issues. I just opened #1958740: Create configuration schemas for content type config entities for that one. I think the minimal number of remaining issues as well as that they are coming up as we do more conversions, not as existing work piled up, we can close this tracking issue down. I'm folding remaining schema issues into http://www.drupal8multilingual.org/issues/focus (issues tagged with D8MI *and* sprint).

tstoeckler’s picture

tstoeckler’s picture

Issue summary: View changes

added related config standards issue.

YesCT’s picture

Issue summary: View changes

added follow up for langcode and uuid

vijaycs85’s picture

Issue summary: View changes

Updated issue summary - for picutre module

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

Anonymous’s picture

Issue summary: View changes

Updated issue summary - for editor module

swentel’s picture

There's a bunch of schema issues waiting for field modules as well, see http://realize.be/field-api/node/61 - Also, entity form display went in, so the widget stuff needs to go away from the config schema's that have patches and we also need to remove them from the existing text module.

swentel’s picture

Status: Closed (fixed) » Active

Re-opening after talking to YesCT

swentel’s picture

Issue summary: View changes

added a section for field stuff

swentel’s picture

Issue summary: View changes

Updated issue summary.

swentel’s picture

Issue summary: View changes

Updated issue summary.

swentel’s picture

Issue summary: View changes

Updated issue summary.

YesCT’s picture

Issue summary: View changes

TOC -c

YesCT’s picture

Issue summary: View changes

trying to remember how to use html -c

YesCT’s picture

issue summary updated.
a section for field issues was added.
I think we will have another group of metas also coming in.

Next steps:
Goal *crowdsource*

check the steps to test on how to use the config inspector to do a review, update instructions here in the issue summary as needed.
make a video of doing a review
write a blog about how to do a schema review
tweet out a link to these instructions and the video

YesCT’s picture

Issue summary: View changes

deleted accidental copy and paste. -c

YesCT’s picture

Issue summary: View changes

add more views issues.

YesCT’s picture

Issue summary: View changes

adding assigned formmater

YesCT’s picture

Issue summary: View changes

adding config inspector link to instructions

vijaycs85’s picture

Issue summary: View changes

Updated issue summary.

YesCT’s picture

Issue summary: View changes

add language config

YesCT’s picture

Issue summary: View changes

adding another language one, inserting in the first round... -y

YesCT’s picture

Issue summary: View changes

using the @ we are doing now.

YesCT’s picture

Issue summary: View changes

moved language as they were not first round and dont want them to get lost there.

YesCT’s picture

Issue summary: View changes

adding date.

YesCT’s picture

Issue summary: View changes

adding a few @ in the issue numbers.

webflo’s picture

Issue summary: View changes

Add issues for entity module

vijaycs85’s picture

Issue summary: View changes

Updating round #2

vijaycs85’s picture

Issue summary: View changes

Updated issue summary.

vijaycs85’s picture

Issue summary: View changes

Updating config section.

xjm’s picture

Issue summary: View changes
Issue tags: +beta blocker

We might want to postpone further efforts in these issues on #2130811: Use config schema in saving and validating configuration form to ensure data is consistent and correct since we currently have no way of enforcing that the schemata are accurate and don't diverge from the actual config data.

alexpott’s picture

Priority: Normal » Critical

Bumping priority as completing this is beta and release blocking

vijaycs85’s picture

Issue summary: View changes

Updating sub-task list

vijaycs85’s picture

Issue summary: View changes

Updating issue summary...

ianthomas_uk’s picture

Issue summary: View changes

Move 2 more to fixed

aspilicious’s picture

Issue summary: View changes
MustangGB’s picture

Issue summary: View changes
Gábor Hojtsy’s picture

Need an issue for schema coverage of migrations based on prior conversations with chx I think. He pointed out we may not be technically able to do that, so may need schema system changes and/or migration YAML format changes.

vijaycs85’s picture

All in-progress sub-tasks are closed as they all moved to #2167623: Add test for all default configuration to ensure schema exists and is correct. So setting this meta fixed.

Gábor Hojtsy’s picture

Status: Fixed » Closed (duplicate)

Yay, thanks! Duplicate would be more appropriate.