Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2170-Schema cleanup and inheritance #2171

Conversation

ychoquet
Copy link
Contributor

@ychoquet ychoquet commented May 23, 2024

Description

Remove deprecated sections of the schema and implement inheritance in the schema to reduce repetitive structures.

Fixes #2170

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.

Add the URL for your deploy!

Checklist:

  • I have build (rush build) and deploy (rush host) my PR
  • I have connected the issues(s) to this PR
  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • I have created new issue(s) related to the outcome of this PR is needed
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

This change is Reviewable

@ychoquet ychoquet self-assigned this May 23, 2024
Copy link
Member

@jolevesq jolevesq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 15 of 23 files at r1, all commit messages.
Reviewable status: 15 of 23 files reviewed, 26 unresolved discussions (waiting on @ychoquet)


packages/geoview-core/src/api/config/types/config-constants.ts line 28 at r1 (raw file):

 * Indeed, GeoCore is not an official Abstract Geoview Layer, but it can be used in schema types.
 */
export type TypeGeoviewLayerTypeWithGeoCore = TypeGeoviewLayerType | typeof CV_CONST_SUB_LAYER_TYPES.GEOCORE;

You cant remove the geocore from type and keep the same name ...TypeWithGeocore


packages/geoview-core/src/api/config/types/config-constants.ts line 155 at r1 (raw file):

        enableRotation: true,
        rotation: 0,
        maxExtent: [-125, 30, -60, 89],

The extent will depend of the projection and it is not max extent but only extent

"initialView": {
        "extent": [-90, 45, -65, 70]
      },

Do not forget to test the demo pages to see if your modification does what it is expected to do


packages/geoview-core/src/api/config/types/config-constants.ts line 172 at r1 (raw file):

    extraOptions: {},
  },
  theme: 'dark',

Default theme is geo.ca


packages/geoview-core/src/api/config/types/config-constants.ts line 186 at r1 (raw file):

  externalPackages: [],
  serviceUrls: {
    geocoreUrl: CV_CONFIG_GEOCORE_URL,

Add constant for geolocator and proxy url (value is in a comment below)


packages/geoview-core/src/api/config/types/config-validation-schema.json line 88 at r1 (raw file):

      "additionalProperties": false,
      "enum": ["dark", "light", "geo.ca"],
      "default": "dark"

default is geo.ca


packages/geoview-core/src/api/config/types/config-validation-schema.json line 245 at r1 (raw file):

      "properties": {
        "name": {
          "description": "External Package name. The name must be ideintical to the window external package object to load.",

Typo identical


packages/geoview-core/src/api/config/types/config-validation-schema.json line 276 at r1 (raw file):

        },
        "proxyUrl": {
          "description": "An optional proxy to be used for dealing with same-origin issues.  URL must either be a relative path on the same server or an absolute path on a server which sets CORS headers.",

default "https://maps.canada.ca/wmsproxy/ws/wmsproxy/executeFromProxy"


packages/geoview-core/src/api/config/types/config-validation-schema.json line 280 at r1 (raw file):

        },
        "geolocator": {
          "description": "Service end point to access geo location of searched value.",

default: "https://geolocator.api.geo.ca?keys=geonames,nominatim,locate"


packages/geoview-core/src/api/config/types/config-validation-schema.json line 284 at r1 (raw file):

        }
      },
      "required": ["geocoreUrl"]

Add the geolocator and proxy as required for the internal one


packages/geoview-core/src/api/config/types/config-validation-schema.json line 415 at r1 (raw file):

            "type": "number"
          },
          "default": [-125, 30, -60, 89]

Do not forget there 2 default, one for LCC and one for WM


packages/geoview-core/src/api/config/types/config-validation-schema.json line 627 at r1 (raw file):

          "minimum": 0,
          "maximum": 28,
          "default": 3.5

I see 3.5 here but when we run the code it is 4.5 (as define in your constant file and below)


packages/geoview-core/src/api/config/types/config-validation-schema.json line 799 at r1 (raw file):

          "properties": {
            "source": {
              "$ref": "#/definitions/TypeSourceImageEsriInitialConfig"

should be DynamicEsri.... because ImageEsri.... will be for image server. Below it is EsriFeature... here ImageEsri, We should have the same order... EsriFeatureInitial... and EsriDynamicInitial...


packages/geoview-core/src/api/config/types/config-validation-schema.json line 1061 at r1 (raw file):

          "type": "object",
          "properties": {
            "maxRecordCount": {

There is no maxRecord on image source (raster)


packages/geoview-core/src/api/config/types/config-validation-schema.json line 1094 at r1 (raw file):

      "allOf": [
        {
          "$ref": "#/definitions/TypeBaseVectorSourceInitialConfig"

There is duplication here.... all vector source should same base vector properties except format. transparent is not part of vector source


packages/geoview-core/src/api/config/types/config-validation-schema.json line 1271 at r1 (raw file):

      }
    },
    "TypeBaseVectorConfig": {

is it geometry? If so we should add to type name


packages/geoview-core/src/api/config/types/map-schema-types.ts line 12 at r1 (raw file):

import { EsriFeatureLayerEntryConfig } from '@config/types/classes/sub-layer-config/vector-leaf/esri-feature-layer-entry-config';

export { MapFeatureConfig } from '@config/types/classes/map-feature-config';

Why the export at the top?


packages/geoview-core/src/api/config/types/map-schema-types-new.ts line 1 at r1 (raw file):

import { AbstractGeoviewLayerConfig } from '@config/types/classes/geoview-config/abstract-geoview-layer-config';

Keep the same name.... this file is use in core. Do not duplicate files for type. The actual one is working. Only the thing for listOfLayerEntryConfig can be in another file only if needed


packages/geoview-core/src/api/config/types/map-schema-types-new.ts line 108 at r1 (raw file):

   * or an absolute path on a server which sets CORS headers.
   */
  proxyUrl?: string;

ike my other comment, optional for the user, mandatory for the internal... same for geolocator


packages/geoview-core/src/api/config/types/map-schema-types-new.ts line 153 at r1 (raw file):

/** Definition of the view settings. */
export type TypeViewSettings = {
  /** Settings for the initial view for map, default is zoomAndCenter of [3.5, [-90, 65]] */

you changed it for 4.5


packages/geoview-core/src/api/config/types/map-schema-types-new.ts line 163 at r1 (raw file):

  rotation?: number;
  /** The extent that constrains the view. Called with [minX, minY, maxX, maxY] extent coordinates.
   * Default [-125, 30, -60, 89].

Default is define from the projection


packages/geoview-core/src/api/config/types/map-schema-types-new.ts line 399 at r1 (raw file):

export interface TypeSourceImageEsriInitialConfig extends TypeBaseSourceInitialConfig {
  /** Maximum number of records to fetch (default: 0). */
  maxRecordCount: number;

No max on image source


packages/geoview-core/src/api/config/types/classes/map-feature-config.ts line 19 at r1 (raw file):

  TypeValidMapProjectionCodes,
  TypeValidVersions,
} from '@config/types/map-schema-types-new';

I do not like the new file here, preferable to use existing file and modify


packages/geoview-core/src/api/config/types/classes/geoview-config/vector-config/esri-feature-config.ts line 11 at r1 (raw file):

import { MapFeatureConfig } from '@/api/config/types/classes/map-feature-config';

export type TypeEsriFeatureLayerNode = GroupLayerEntryConfig | EsriFeatureLayerEntryConfig;

Why do you have a GroupLayerEntry type... A group is an abstraction, not a real type. When we are getting config for leaf you should not deal with Group. Group should be in its own config file I think. Esri feature and other vector will never have group not define in a config

For Dynamic we can but the metadata reading knows it right at the beginning if there is group or not and can create them prior to create the leaf. The whole structure can be done ahead of extracting info for leaf layer


packages/geoview-core/src/api/config/types/classes/geoview-config/vector-config/esri-feature-config.ts line 30 at r1 (raw file):

  constructor(layerConfig: TypeJsonObject, language: TypeDisplayLanguage, mapFeatureConfig?: MapFeatureConfig) {
    super(layerConfig, language, mapFeatureConfig);
    // this.geoviewLayerType = CV_CONST_LAYER_TYPES.ESRI_FEATURE;

Dead code


packages/geoview-core/src/api/config/types/classes/sub-layer-config/group-layer-entry-config.ts line 13 at r1 (raw file):

export class GroupLayerEntryConfig extends ConfigBaseClass {
  /** Used internally to distinguish layer groups derived from the metadata. */
  isMetadataLayerGroup = false;

Do we really need to make the difference?


packages/geoview-core/src/api/config/types/classes/sub-layer-config/raster-leaf/esri-dynamic-layer-entry-config.ts line 47 at r1 (raw file):

    super(layerConfig, initialSettings, language, geoviewLayerConfig, parentNode);
    // Set default values.
    if (!this.source) this.source = { maxRecordCount: 0, projection: 3978, format: 'png' };

No maxRecord on Dynamic

Copy link
Member

@Alex-NRCan Alex-NRCan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 23 of 23 files at r1, all commit messages.
Reviewable status: all files reviewed, 27 unresolved discussions (waiting on @ychoquet)


packages/geoview-core/src/api/config/types/type-guards.ts line 10 at r1 (raw file):

import { CV_CONST_SUB_LAYER_TYPES, CV_CONST_LAYER_TYPES } from '@config/types/config-constants';
import { TypeJsonObject } from '@config/types/config-types';
import {

As a general note, type guards are, most of the time, unnecessary, as TypeScript automatically narrows down the type when performing conditional operations.

If we feel like we really need to, we can keep those custom type guards, but I'd probably just place them next to their Type definition (like where TypeBaseVectorConfig is defined). Having a specific file (which would serve for a bunch of type guards?) seems like overload.

Copy link
Contributor Author

@ychoquet ychoquet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: all files reviewed, 26 unresolved discussions (waiting on @Alex-NRCan and @jolevesq)


packages/geoview-core/src/api/config/types/config-constants.ts line 28 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

You cant remove the geocore from type and keep the same name ...TypeWithGeocore

This is not a constant. Also, this type does not exists in the new configuration


packages/geoview-core/src/api/config/types/config-constants.ts line 155 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

The extent will depend of the projection and it is not max extent but only extent

"initialView": {
        "extent": [-90, 45, -65, 70]
      },

Do not forget to test the demo pages to see if your modification does what it is expected to do

The value here are used only if the user doesn't specify a projection code.


packages/geoview-core/src/api/config/types/config-constants.ts line 172 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

Default theme is geo.ca

Done.


packages/geoview-core/src/api/config/types/config-constants.ts line 186 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

Add constant for geolocator and proxy url (value is in a comment below)

Done.


packages/geoview-core/src/api/config/types/config-validation-schema.json line 88 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

default is geo.ca

Done.


packages/geoview-core/src/api/config/types/config-validation-schema.json line 245 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

Typo identical

Done.


packages/geoview-core/src/api/config/types/config-validation-schema.json line 276 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

default "https://maps.canada.ca/wmsproxy/ws/wmsproxy/executeFromProxy"

Done.


packages/geoview-core/src/api/config/types/config-validation-schema.json line 280 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

default: "https://geolocator.api.geo.ca?keys=geonames,nominatim,locate"

Done.


packages/geoview-core/src/api/config/types/config-validation-schema.json line 284 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

Add the geolocator and proxy as required for the internal one

The internal config validation doesn't have to make these properties as required because if the user doesn't provide them, the default values will be assigned to them. The question is: do we have to set geocoreUrl as required for the input schema?


packages/geoview-core/src/api/config/types/config-validation-schema.json line 415 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

Do not forget there 2 default, one for LCC and one for WM

The default specified here is used only if the user doesn't specify a projection code


packages/geoview-core/src/api/config/types/config-validation-schema.json line 627 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

I see 3.5 here but when we run the code it is 4.5 (as define in your constant file and below)

Done. I've changed the value in config-constants to 4.5


packages/geoview-core/src/api/config/types/config-validation-schema.json line 799 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

should be DynamicEsri.... because ImageEsri.... will be for image server. Below it is EsriFeature... here ImageEsri, We should have the same order... EsriFeatureInitial... and EsriDynamicInitial...

Done. Used TypeSourceEsriFeatureInitialConfig and TypeSourceEsriDynamicInitialConfig


packages/geoview-core/src/api/config/types/config-validation-schema.json line 1061 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

There is no maxRecord on image source (raster)

Are you sure? I ask because ersiDynamic layers can call getAllFeatureInfo as we can do with esriFeature layers.


packages/geoview-core/src/api/config/types/config-validation-schema.json line 1094 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

There is duplication here.... all vector source should same base vector properties except format. transparent is not part of vector source

Done. TypeSourceEsriFeatureInitialConfig narrow down the format's domain (TypeVectorSourceFormats) defined in the parent TypeBaseVectorSourceInitialConfig to EsirJSON. This is normal and all other vector layers will do the same. I removed the transparent property from the TypeSourceEsriFeatureInitialConfig definition.


packages/geoview-core/src/api/config/types/config-validation-schema.json line 1271 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

is it geometry? If so we should add to type name

Done. Renamed TypeBaseVectorConfig to TypeBaseVectorGeometryConfig.


packages/geoview-core/src/api/config/types/map-schema-types.ts line 12 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

Why the export at the top?

The rule says all types defined in config validation schema MUST BE DEFINED in map schema types. That's why.


packages/geoview-core/src/api/config/types/map-schema-types-new.ts line 1 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

Keep the same name.... this file is use in core. Do not duplicate files for type. The actual one is working. Only the thing for listOfLayerEntryConfig can be in another file only if needed

Done. I deleted the old map schema types file and replaced it with this new one.


packages/geoview-core/src/api/config/types/map-schema-types-new.ts line 108 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

ike my other comment, optional for the user, mandatory for the internal... same for geolocator

Same question: Default is used if the user doesn't provide a value. This is the reason why the internal schema doesn't have to enforce a required constraint for these URLs. Also, input schema shouldn't have a required constraint on geocoreUrl since there is a default value.


packages/geoview-core/src/api/config/types/map-schema-types-new.ts line 153 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

you changed it for 4.5

Done.


packages/geoview-core/src/api/config/types/map-schema-types-new.ts line 163 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

Default is define from the projection

Same reason as above, the default is used when the user doesn't provide a value at all.


packages/geoview-core/src/api/config/types/map-schema-types-new.ts line 399 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

No max on image source

Same question as above.


packages/geoview-core/src/api/config/types/type-guards.ts line 10 at r1 (raw file):

Previously, Alex-NRCan (Alex) wrote…

As a general note, type guards are, most of the time, unnecessary, as TypeScript automatically narrows down the type when performing conditional operations.

If we feel like we really need to, we can keep those custom type guards, but I'd probably just place them next to their Type definition (like where TypeBaseVectorConfig is defined). Having a specific file (which would serve for a bunch of type guards?) seems like overload.

Type guards is used when we want to switch from the base type to the child type. Child of a base class doesn't have all the same additional properties. Using type guards not only does a type cast, it also verify that the cast is valid.


packages/geoview-core/src/api/config/types/classes/map-feature-config.ts line 19 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

I do not like the new file here, preferable to use existing file and modify

Done. This was temporary. The file name is back to what it was before.


packages/geoview-core/src/api/config/types/classes/geoview-config/vector-config/esri-feature-config.ts line 11 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

Why do you have a GroupLayerEntry type... A group is an abstraction, not a real type. When we are getting config for leaf you should not deal with Group. Group should be in its own config file I think. Esri feature and other vector will never have group not define in a config

For Dynamic we can but the metadata reading knows it right at the beginning if there is group or not and can create them prior to create the leaf. The whole structure can be done ahead of extracting info for leaf layer

I do not agree with the interpretation you make here. All geoview layer has in the listOfLayerEntryConfig a tree structure that can have a height of 1 or more depending on the user's need. All intermediary nodes must be a GroupLayerEntryConfig object and all leaves must be objects of a type corresponding to the geoview layer in use. In the present context, EsriFeatureLayerConfig instances can only contain EsriFeatureLayerEntryConfig.


packages/geoview-core/src/api/config/types/classes/geoview-config/vector-config/esri-feature-config.ts line 30 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

Dead code

Done. Removed.


packages/geoview-core/src/api/config/types/classes/sub-layer-config/group-layer-entry-config.ts line 13 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

Do we really need to make the difference?

Yes, all nodes of the tree share a set of common properties.


packages/geoview-core/src/api/config/types/classes/sub-layer-config/raster-leaf/esri-dynamic-layer-entry-config.ts line 47 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

No maxRecord on Dynamic

Same question as before.

@ychoquet ychoquet force-pushed the 2170-Schema_cleanup_and_inheritance branch from d127c0a to 99a8907 Compare May 28, 2024 03:55
Copy link
Member

@jolevesq jolevesq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 39 of 43 files at r2, all commit messages.
Reviewable status: 43 of 47 files reviewed, 8 unresolved discussions (waiting on @Alex-NRCan and @ychoquet)


packages/geoview-core/src/api/config/types/config-validation-schema.json line 284 at r1 (raw file):

Previously, ychoquet (Yves Choquette) wrote…

The internal config validation doesn't have to make these properties as required because if the user doesn't provide them, the default values will be assigned to them. The question is: do we have to set geocoreUrl as required for the input schema?

No , it can be only for the internal... geocore url is the same as the other. Only needed for the internal


packages/geoview-core/src/api/config/types/config-validation-schema.json line 1061 at r1 (raw file):

Previously, ychoquet (Yves Choquette) wrote…

Are you sure? I ask because ersiDynamic layers can call getAllFeatureInfo as we can do with esriFeature layers.

We may have to do some testing, but the max record is use to query feature to display on the map.... Do we have an ESRI with thousand of features and max record?

Ok, on le garde pour Dynamic...


packages/geoview-core/src/api/config/types/classes/geoview-config/vector-config/esri-feature-config.ts line 11 at r1 (raw file):

Previously, ychoquet (Yves Choquette) wrote…

I do not agree with the interpretation you make here. All geoview layer has in the listOfLayerEntryConfig a tree structure that can have a height of 1 or more depending on the user's need. All intermediary nodes must be a GroupLayerEntryConfig object and all leaves must be objects of a type corresponding to the geoview layer in use. In the present context, EsriFeatureLayerConfig instances can only contain EsriFeatureLayerEntryConfig.

Yeah but the esri-config cannot be a group it must be esri-feature config. Then the group is group-config.ts


packages/geoview-core/src/api/config/types/classes/sub-layer-config/raster-leaf/esri-dynamic-layer-entry-config.ts line 47 at r1 (raw file):

Previously, ychoquet (Yves Choquette) wrote…

Same question as before.

Ok, we keep


packages/geoview-core/src/core/stores/store-interface-and-intial-values/ui-state.ts line 108 at r2 (raw file):

        get().uiState.setterActions.setActiveFooterBarTab(id);
      },
      setActiveAppBarTabId: (id: string) => {

Why have you changed this state file?


packages/geoview-core/src/core/utils/config/config-validation.ts line 10 at r2 (raw file):

import defaultsDeep from 'lodash/defaultsDeep';

import { TypeDisplayLanguage, TypeLocalizedString } from '@/api/config/types/map-schema-types';

We can keep this @api/config as it is the same path as @config but I do not understand why you revert all the @config you have done

Copy link
Contributor Author

@ychoquet ychoquet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 43 of 47 files reviewed, 8 unresolved discussions (waiting on @Alex-NRCan, @jolevesq, and @ychoquet)


packages/geoview-core/src/api/config/types/config-validation-schema.json line 284 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

No , it can be only for the internal... geocore url is the same as the other. Only needed for the internal

Done.


packages/geoview-core/src/api/config/types/config-validation-schema.json line 1061 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

We may have to do some testing, but the max record is use to query feature to display on the map.... Do we have an ESRI with thousand of features and max record?

Ok, on le garde pour Dynamic...

Ok, we'll see. Let's keep it for the moment.


packages/geoview-core/src/api/config/types/classes/geoview-config/vector-config/esri-feature-config.ts line 11 at r1 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

Yeah but the esri-config cannot be a group it must be esri-feature config. Then the group is group-config.ts

Do not confuse the GeoView layer in the listOfGeoviewLayerConfig with the tree structure in the listOfLayerEntryConfig. The input schema defines the listOfLayerEntryConfig as a tree with intermediate nodes of GroupLayerEntryConfig and leaf nodes like EsriFeatureLayerEntryConfig in this case. In addition, all the types that can be part of the listOfLayerEntryConfig have a ...EntryConfig termination, and apart from the trunk nodes of type GroupLayerEntryConfig , a GeoView layer can only contain one leaf type (EsriFeatureLayerEntryConfig in this case). The internal schema follows the same rules.


packages/geoview-core/src/core/stores/store-interface-and-intial-values/ui-state.ts line 108 at r2 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

Why have you changed this state file?

To resolve a collision duriong the rebase.


packages/geoview-core/src/core/utils/config/config-validation.ts line 10 at r2 (raw file):

Previously, jolevesq (Johann Levesque) wrote…

We can keep this @api/config as it is the same path as @config but I do not understand why you revert all the @config you have done

I did not revert them. I think the rebase did that.

@ychoquet ychoquet force-pushed the 2170-Schema_cleanup_and_inheritance branch 2 times, most recently from 81c2002 to 3e9954d Compare May 28, 2024 18:00
Copy link
Member

@jolevesq jolevesq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 of 43 files at r2, 38 of 38 files at r3, 8 of 8 files at r4, all commit messages.
Reviewable status: all files reviewed, 2 unresolved discussions (waiting on @Alex-NRCan)

@ychoquet ychoquet force-pushed the 2170-Schema_cleanup_and_inheritance branch from 3e9954d to 9c68491 Compare May 29, 2024 13:51
Copy link
Member

@jolevesq jolevesq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 5 of 5 files at r5, all commit messages.
Reviewable status: all files reviewed, 2 unresolved discussions (waiting on @Alex-NRCan)

Copy link
Member

@jolevesq jolevesq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: all files reviewed, 1 unresolved discussion (waiting on @Alex-NRCan)

Copy link
Member

@jolevesq jolevesq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: all files reviewed, 1 unresolved discussion (waiting on @Alex-NRCan)

@jolevesq jolevesq merged commit 0617b44 into Canadian-Geospatial-Platform:develop May 29, 2024
5 of 6 checks passed
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.

Schema cleanup and inheritance
3 participants