WordPress.org

Make WordPress Core

Changes between Version 12 and Version 14 of Ticket #51092


Ignore:
Timestamp:
08/27/2020 09:15:13 AM (13 months ago)
Author:
carike
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #51092 – Description

    v12 v14  
    1818As all items are not strictly privacy related, the file will be called disclosures.json instead.
    1919
    20 This ticket proposes a JSON schema. Future tickets will deal with the validation and the display respectively.
    2120In its current form, the JSON schema does not set any fields as "required".
    2221As URLs are not one of the six data types accepted by JSON, these types have been set as "string"s. The format has been set to "uri-reference" to allow for relative URLs.
     22
     23**Scope:**
     24
     25This ticket proposes a JSON schema. Future tickets will deal with the validation and the display respectively.
    2326In the ticket to follow this one, the validation of the schema should include appropriate validation of the URLs in PHP.
    2427Further tickets should include ones to update WP-CLI and WordPress.org to make the strings translatable. Thanks to Swissspidy for the comment below!
     
    3235   "type": "object",
    3336   "properties": {
    34       "details": {
     37      "info": {
     38         "description": "This section provides information to help identify the code.",
    3539         "type": "object",
    3640         "properties": {
    3741            "component": {
    38                "description": "Please enter one of the following values: plugin, theme, or the specific Core component",
     42               "description": "One of the following values: plugin, theme, or the specific Core component (e.g. avatar).",
    3943               "type": "string"
    4044            },
    4145            "slug": {
    42                "description": "Please supply the slug, if the code relates to a plugin or a theme.",
     46               "description": "The slug, if the code relates to a plugin or a theme.",
    4347               "type": "string"
    4448            },
    4549            "version": {
    46                "description": "Please supply which version of disclosures.json this represents for the individual component.",
     50               "description": "Which version of disclosures.json this represents for the individual component.",
    4751               "type": "string"
    4852            },
    4953            "since": {
    50                "description": "Please supply the plugin or theme's version number, or the Core version, if the component is a Core component, which introduced the current version of this disclosures.json file, i.e. this should represent the since value.",
     54               "description": "The plugin or theme's version number, or the Core version, if the component is a Core component, which introduced the current version of this disclosures.json file. I.e. this should represent the since value.",
    5155               "type": "string"
    5256            }
     
    5862<?php
    5963      "licenses": {
     64         "description": "This section contains more information about licensing."
    6065         "type": "object",
    6166         "properties": {
     
    6671            },
    6772            "localAssets": {
    68                "description": "A comma-separated list of URLs to the license that applies to the use of each asset that has been included locally. This includes the license of any bundled libraries, as well as the licenses of any images, fonts, etc.",
     73               "description": "A comma-separated list of URLs to the license that applies to the use of each asset that has been included locally. This should include the license of any bundled libraries, as well as the licenses of any images, fonts, etc.",
    6974               "type": "array",
    7075               "items": {
     
    7580            },
    7681            "remoteAssets": {
    77                "description": "A comma-separated list of URLs to the license that applies to the use of each asset that is accessed remotely. This includes the licenses of any external libraries, as well as the licenses of any images, fonts, etc.",
     82               "description": "A comma-separated list of URLs to the licenses that applies to the use of each asset that is accessed remotely. This should the licenses of any external libraries, as well as the licenses of any images, fonts, etc.",
    7883               "type": "array",
    7984               "items": {
     
    9095<?php
    9196      "external": {
    92          "description": "A comma-separated list of URLs linking to the Privacy Policies of the sites to which the calls to external networks are being made.",
     97         "description": "This section provides more information relating to the Privacy Policies of the external network sites being called.",
    9398         "type": "object",
    9499         "properties": {
     
    127132<?php
    128133      "terms": {
     134         "description": "This section contains more information about third party terms and conditions that may apply to use of the software.",
    129135         "type": "object"
    130          "description": "A comma-separated list of URLs linking to third party Terms and Conditions, if applicable.",
    131136         "properties": {
    132137            "SaaS": {
     
    158163            },
    159164            "registration": {
    160                "description": "Please provide a comma-separated list of URLs linking to the Terms of Service that apply to any accounts that need to be registered in order to be able to make use of this component's code.",
     165               "description": "A comma-separated list of URLs linking to the Terms of Service that apply to any accounts that need to be registered in order to be able to make use of this component's code.",
    161166               "type": "array",
    162167               "items": {
     
    173178<?php
    174179      "openWeb": {
    175          "type": "object",
    176180         "description": "Details about mechanisms that allow others to obtain information from the site without browsing the website's front end.",
     181         "type": "object",
    177182         "properties": {
    178183            "apiEndpoints": {
     
    230235<?php
    231236      "communication": {
     237         "description": "This section provides more information about how the software communicates with external parties.",
    232238         "type": "object",
    233239         "properties": {
     
    252258<?php
    253259      "database": {
     260         "description": "This section contains information about how the software interacts with the site's database (MySQL or MariaDB).",
    254261         "type": "object",
    255262         "properties": {
     
    269276            },
    270277            "CPT": {
     278               "description": "Whether the component creates any Custom Post Types.",
    271279               "type": "object",
    272                "description": "Please indicate whether the component creates any Custom Post Types.",
    273280               "properties": {
    274281                  "auto": {
    275                      "description": "Please indicate the number of Custom Post Types that are automatically created by the code without user intervention.",
     282                     "description": "The number of Custom Post Types that are automatically created by the code without user intervention.",
    276283                     "type": "integer",
    277284                     "minimum": 0
    278285                  },
    279286                  "manual": {
    280                      "description": "Please indicate whether the code allows for users to generate Custom Post Types.",
     287                     "description": "Whether or not the code allows for users to generate Custom Post Types.",
    281288                     "type": "boolean"
    282289                  }
     
    284291            },
    285292            "customTables": {
    286                "description": "Please indicate whether the code creates any custom tables in the database.",
     293               "description": "Whether or not the code creates any custom tables in the database.",
    287294               "type": "object",
    288295               "properties": {
    289296                  "auto": {
    290                      "description": "Please indicate the number of custom tables that are automatically created by the code without user intervention.",
     297                     "description": "The number of custom tables that are automatically created by the code without user intervention.",
    291298                     "type": "integer",
    292299                     "minimum": 0
    293300                  },
    294301                  "manual": {
    295                      "description": "Please indicate whether the code allows the user to create any custom tables.",
     302                     "description": "Whether or not the code allows the user to create any custom tables.",
    296303                     "type": "boolean"
    297304                  }
     
    305312<?php
    306313      "otherStorage": {
     314         "description": "Provides more information about where information may be stored, other than the database.",
    307315         "type": "object",
    308316         "properties": {
     
    319327               "properties": {
    320328                  "auto": {
    321                      "description": "Whether or not the code makes changes, or is capable of making changes, to the website's file structure that are not explicitly initiated by a user. This does not include files that are added directly from the repository, or in the original .zip file.",
     329                     "description": "Whether or not the code makes changes, or is capable of making changes, to the website's file structure that are not explicitly initiated by a user. This should not include files that are added directly from the repository, or in the original .zip file.",
    322330                     "type": "boolean"
    323331                  },
    324332                  "manual": {
    325                      "description": "Whether or not the code makes changes, or is capable of making changes, to the website's file structure that are explicitly initiated by the user. This does not include files that are added directly from the repository, or in the original .zip file.",
     333                     "description": "Whether or not the code makes changes, or is capable of making changes, to the website's file structure that are explicitly initiated by the user. This should not include files that are added directly from the repository, or in the original .zip file.",
    326334                  }
    327335               }
     
    334342<?php
    335343      "automation": {
    336          "description": "Provides some information with regards to action taken by the code without user input.",
     344         "description": "Provides more information with regards to action taken by the code without user input.",
    337345         "type": "object",
    338346         "properties": {
     
    352360      },
    353361      "compatibility": {
    354          "type": "object",
    355          "description": "Indicates the component's compatibility with Privacy Tools.",
     362         "description": "Indicates whether or not the code is compatible with Privacy Tools.",
     363         "type": "object",
    356364         "properties": {
    357365            "ppiExport": {
     
    383391      "monetization": {
    384392         "type": "object",
    385          "description": "This section provides details regarding monetization practices.",
     393         "description": "This section provides more information about monetization practices. It is included to help facilitate transparency and fair business dealings. Please note that disclosure here does not relieve a developer from any specific obligations that they may have under applicable statutes.",
    386394         "properties": {
    387395            "upsells": {
    388                "description": "Does this code promote a paid version, or extensions, or other products or services from the same author(s)?",
    389                "type": "boolean"
     396               "description": "More information about upselling in the code.",
     397               "type": "array",
     398               "items": [
     399                  {
     400                     "description": "Does this code promote a paid version, or extensions, or other products or services from the same author(s)?",
     401                     "type": "boolean"
     402                  }
     403               ],
     404               "additionalItems: {
     405                  "description": "A comma-separate list of URLs linking to the Terms of Service that apply to any paid version, or extension, or other products or services from the same author(s).",
     406                  "type": "string"
     407               }
    390408            },
    391409            "donations": {
    392                "description": "Does this code contain any request, or information in order to, donate to the plugin or its developer(s)?",
    393                "type": "boolean"
     410               "description": "More information about donations that are facilitated by the code.",
     411               "type": "array",
     412               "items": [
     413                  {
     414                     "description": "Does this code contain any request, or information in order to, donate to the plugin or its developer(s)?",
     415                     "type": "boolean"
     416                  }
     417               ],
     418               "additionalItems": {
     419                  "description": "A comma-separated list of URLs linking to the Terms of Service that apply to the platform being used to facilitate donations.",
     420                  "type": "string"
     421               }
    394422            },
    395423            "backLinks": {
    396                "description": "Does this code contain or generate, or ask the site owner / admin for permission to generate, backlinks?",
    397                "type": "boolean"
     424               "description": "More information about the code requesting credit.",
     425               "type": "array",
     426               "items": [
     427                  {
     428                     "description": "Does this code contain or generate, or ask the site owner / admin for permission to generate, backlinks?",
     429                     "type": "boolean"
     430                  }
     431               ],
     432               "additionalItems": {
     433                  "type": "string"
     434               }
    398435            },
    399436            "affiliates": {
    400                "description": "Does this code contain, or generate affiliate links - i.e. links from which the author may receive conditional compensation, whether in money, or in kind?",
    401                "type": "boolean"
     437               "description": "More information about affiliate networks that are promoted by the code.",
     438               "type": "array",
     439               "items": [
     440                  {
     441                     "description": "Does this code contain, or generate affiliate links - i.e. links from which the author may receive conditional compensation, whether in money, or in kind?",
     442                     "type": "boolean"
     443                  }
     444               ],
     445               "additionalItems": {
     446                  "description": "A comma-separated list of URLs linking to the Terms of Service that apply to affiliate networks being promoted by the code.",
     447                  "type": "string"
     448               }
    402449            },
    403450            "advertising": {
    404                "description": "Does the code contain, or generate promotions or recommendations for any products or services not directly under the control of the author(s), for which the author(s) receive any compensation, whether in money, or in kind?",
    405                "type": "boolean"
     451               "description": "More information about advertising that is facilitated by the code.",
     452               "type": "array",
     453               "items": [
     454                  {
     455                     "description": "Does the code contain, or generate promotions or recommendations for any products or services not directly under the control of the author(s), for which the author(s) receive any compensation, whether in money, or in kind?",
     456                     "type": "boolean
     457                  }
     458               ],
     459               "additionalItems": {
     460                  "description": "A comma-separated list of URLs linking to the Terms of Service that apply to any products or services that are being advertised by the code.",
     461                  "type": "string"
     462               }
    406463            }
    407464         }
     
    410467}
    411468}}}
     469
     470Thanks to Apedog for suggesting improved phrasing for the "external" property's description.