From 77140d0baf7af709e45cab52d6604e4f118bc6da Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 13 Dec 2024 18:06:24 -0500 Subject: [PATCH] feat: Undeprecated and removed fields are prohibited and no longer supported --- README.md | 2 -- extension_explorer/data/tags.yaml | 1 - .../locale/es/LC_MESSAGES/messages.po | 4 --- extension_explorer/messages.pot | 4 --- .../templates/extension_schema.html | 35 ------------------- extension_explorer/util.py | 32 ++--------------- extension_explorer/views.py | 5 +-- tests/test_util.py | 22 ------------ 8 files changed, 4 insertions(+), 101 deletions(-) diff --git a/README.md b/README.md index 5aa8391f3..b0f25c845 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,6 @@ The automated tests provide full code coverage, but you might still want to chec * The "Description" column: * renders Markdown * displays deprecation message - * indicates whether undeprecated * indicates multilingual support * indicates whether it overrides: * the standard @@ -110,7 +109,6 @@ The automated tests provide full code coverage, but you might still want to chec * the standard * other extensions * Types of arrays indicate the types of items - * Removed fields are listed, grouped by deprecation * Codelists * Additional columns are shown * URLs are hyperlinked diff --git a/extension_explorer/data/tags.yaml b/extension_explorer/data/tags.yaml index 064583aac..f37494c01 100644 --- a/extension_explorer/data/tags.yaml +++ b/extension_explorer/data/tags.yaml @@ -12,7 +12,6 @@ profile: - finance - location - metrics - - milestone_documents - performance_failures - process_title - qualification diff --git a/extension_explorer/locale/es/LC_MESSAGES/messages.po b/extension_explorer/locale/es/LC_MESSAGES/messages.po index 8cfeadcdf..2fae18453 100644 --- a/extension_explorer/locale/es/LC_MESSAGES/messages.po +++ b/extension_explorer/locale/es/LC_MESSAGES/messages.po @@ -198,10 +198,6 @@ msgstr "Documentación de los campos en la extensión %(name)s" msgid "Schema" msgstr "Esquema" -#: templates/extension_schema.html:24 templates/extension_schema.html:126 -msgid "Removed fields" -msgstr "Quitar campos" - #: templates/extension_schema.html:38 #, python-format msgid "" diff --git a/extension_explorer/messages.pot b/extension_explorer/messages.pot index 0756fce6e..27208dd90 100644 --- a/extension_explorer/messages.pot +++ b/extension_explorer/messages.pot @@ -170,10 +170,6 @@ msgstr "" msgid "Schema" msgstr "" -#: templates/extension_schema.html:24 templates/extension_schema.html:126 -msgid "Removed fields" -msgstr "" - #: templates/extension_schema.html:38 #, python-format msgid "" diff --git a/extension_explorer/templates/extension_schema.html b/extension_explorer/templates/extension_schema.html index b2971729b..b2cc59e52 100644 --- a/extension_explorer/templates/extension_schema.html +++ b/extension_explorer/templates/extension_schema.html @@ -18,13 +18,6 @@ {% endfor %} - {% if removed_fields %} -
  • - - {{ _("Removed fields") }} - -
  • - {% endif %} {% endblock %} @@ -98,18 +91,12 @@

    {% endif %} {% if 'deprecated' in field.schema %} - {% if field.schema.deprecated %}

    {{ _('Deprecated in OCDS %(deprecatedVersion)s:', deprecatedVersion=field.schema.deprecated.deprecatedVersion) }} {{ field.schema.deprecated.description }}

    - {% else %} -

    - {{ _('The extension undoes the deprecation of this field.') }} -

    - {% endif %} {% endif %} @@ -120,28 +107,6 @@

    {% endfor %} - - {% if removed_fields %} -

    - {{ _("Removed fields") }} -

    - - {% if 'active' in removed_fields %} -

    - {{ _("The extension removes these fields from the release schema:") }} -

    - - {{ field_list(removed_fields.active) }} - {% endif %} - - {% if 'deprecated' in removed_fields %} -

    - {{ _("The extension removes these deprecated fields from the release schema:") }} -

    - - {{ field_list(removed_fields.deprecated) }} - {% endif %} - {% endif %} {% endblock %} {% macro field_list(fields) -%} diff --git a/extension_explorer/util.py b/extension_explorer/util.py index 21e298c99..e952f7f90 100644 --- a/extension_explorer/util.py +++ b/extension_explorer/util.py @@ -71,7 +71,7 @@ def set_tags(extensions): for extension in extensions.values(): extension['tags'] = set() - if extension['core'] and extension['id'] != 'milestone_documents': + if extension['core']: extension['tags'].add('recommended') groups = {} @@ -227,36 +227,10 @@ def get_codelist_tables(extension_version, lang): return tables -def get_removed_fields(extension_version, lang): - """ - Return a dictionary of deprecation status and field tables. Each table is a list of fields. Each field is a - dictionary with "definition_path", "path" and "url" (if available) keys. All values are translated. - """ - tables = defaultdict(list) - - schema = _patch_schema(extension_version, 'en', include_test_dependencies=True) - sources = _get_sources(schema, lang) - - for field in get_schema_fields(extension_version['schemas']['release-schema.json'][lang]): - # If the field isn't removed. - if field.schema is not None: - continue - - original_field = _add_link_to_original_field(field, schema, sources) - - group = 'deprecated' if original_field.get('deprecated') else 'active' - - d = field.asdict(exclude=('definition_pointer', 'pointer', 'schema', 'required', 'deprecated', 'multilingual')) - tables[group].append(d) - - return tables - - def get_schema_tables(extension_version, lang): """ - Return a dictionary of definition names and field tables. Each table is a list of fields. Each field is a - dictionary with "definition_path", "path", "schema", "multilingual", "title", "description", "types" and "source" - (if available) keys. All values are translated. + Return a dictionary of definition names and field tables. Each table is a list of fields. + All values are translated. The "description" (rendered from Markdown) and "types" values may contain HTML. The "description" includes any deprecation information. diff --git a/extension_explorer/views.py b/extension_explorer/views.py index 6be46cecd..eb2e08cf2 100644 --- a/extension_explorer/views.py +++ b/extension_explorer/views.py @@ -13,7 +13,6 @@ get_extension_explorer_data_filename, get_extensions, get_present_and_historical_versions, - get_removed_fields, get_schema_tables, highlight_json, identify_headings, @@ -162,12 +161,10 @@ def extension_schema(lang, identifier, version): present_versions, historical_versions = get_present_and_historical_versions(extension) tables = get_schema_tables(extension_version, lang) - removed_fields = get_removed_fields(extension_version, lang) return render_template('extension_schema.html', lang=lang, identifier=identifier, version=version, extension=extension, extension_version=extension_version, present_versions=present_versions, - historical_versions=historical_versions, default_master=default_master, tables=tables, - removed_fields=removed_fields) + historical_versions=historical_versions, default_master=default_master, tables=tables) @app.route('//extensions///codelists/') diff --git a/tests/test_util.py b/tests/test_util.py index d5f233961..c4088cda8 100644 --- a/tests/test_util.py +++ b/tests/test_util.py @@ -6,7 +6,6 @@ get_codelist_tables, get_extensions, get_present_and_historical_versions, - get_removed_fields, get_schema_tables, highlight_json, identify_headings, @@ -337,27 +336,6 @@ def test_get_present_and_historical_versions_live(): assert historical_versions == [('live', '')] -def test_get_removed_fields(client): - extension_version = deepcopy(extension_version_template) - extension_version['schemas']['release-schema.json']['en'] = release_schema - - fields = get_removed_fields(extension_version, 'en') - - assert fields == { - 'active': [ - {'definition_path': '', 'path': 'buyer', - 'url': 'https://standard.open-contracting.org/1.1/en/schema/reference/#release-schema.json,,buyer'}, - {'definition_path': 'Tender', 'path': 'description', - 'url': 'https://standard.open-contracting.org/1.1/en/schema/reference/#release-schema.json,/definitions/Tender,description'}, - {'definition_path': 'Location', 'path': 'description', - 'url': '/en/extensions/location/v1.1.3/schema/#Location.description'}, - ], - 'deprecated': [ - {'definition_path': 'OrganizationReference', 'path': 'address'}, - ], - } - - def test_get_schema_tables(client): extension_version = deepcopy(extension_version_template) extension_version['schemas']['release-schema.json']['en'] = release_schema