OData TC meeting #178 Thursday June 22, 2017

Acting chair: Ralf

Chat transcript from room: odatatc
2017-06-22 0800-1000 PDT

1. Roll call

1.1 Members present

    George Ericson (Dell)
    Gerald Krause (SAP SE)
    Hubert Heijkers (IBM)
    Mark Biamonte (Progress Software)
    Martin Zurmuehl (SAP SE)
    Matthew Borges (SAP SE) a.k.a. Matt
    Michael Pizzo (IBM) a.k.a. Mike
    Ralf Handl (SAP SE)
    Stefan Hagen (Individual)

Quorum achieved. Details cf. normative attendance sheet for this meeting (event_id=43984).

Notes taken by all and subsequently edited for readability by Stefan.

2. Approve agenda

Agenda is approved unchanged as published.

3. Approve minutes from previous meeting(s)

3.1 Minutes from June 08, 2017 TC meeting #177

https://www.oasis-open.org/committees/download.php/60960/odata-meeting-177_on-20170608-minutes.html

Minutes approved unchanged as published.

4. Review action items [Link to Action item list]

4.1 Action items due

None

5. V4.01

5.1 Document walkthrough

5.1.1 Part 1: Protocol

All walk through https://www.oasis-open.org/committees/download.php/61017/odata-v4.01-wd02-part1-protocol-2017-06-20.docx

5.1.2 ABNF

All walk through https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/4.01%20spec/ABNF/odata-abnf-construction-rules.txt?op=diff&rev=1052

5.1.3 ABNF Testcases

All walk through https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/4.01%20spec/ABNF/odata-abnf-testcases.xml?op=diff&rev=1052

5.1.4 Core Vocabulary

All walk through https://github.com/oasis-tcs/odata-vocabularies/commit/92b84be8c5f53c872bfed08d53629c3f202f06ea

5.1.5 ODATA-1066 - Consider supporting optional operation parameters

Mike: Example of applying annotation:

<?xml version="1.0" encoding="utf-8"?>
 <edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
  <edmx:DataServices>
    <Schema Namespace="test" xmlns="http://docs.oasis-open.org/odata/ns/edm">
      <Function Name="TestFunction">
        <Parameter Name="param" Type="Edm.String" />
        <Parameter Name="requiredParam" Type="Edm.String" />
        <Parameter Name="optionalParam" Type="Edm.String">
          <Annotation Term="Org.OData.Core.V1.OptionalParameter" />
        </Parameter>
        <Parameter Name="optionalParamWithDefault" Type="Edm.String">
          <Annotation Term="Org.OData.Core.V1.OptionalParameter">
            <Record>
              <PropertyValue Property="DefaultValue" String="Smith" />
            </Record>
          </Annotation>
        </Parameter>
        <ReturnType Type="Edm.Boolean" />
      </Function>
      <EntityContainer Name="Default">
        <FunctionImport Name="TestFunction" Function="test.TestFunction" />
      </EntityContainer>
    </Schema>
  </edmx:DataServices>
</edmx:Edmx>

Mike: Better:

"<edmx:Edmx xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\" Version=\"4.0\">" +
  "<edmx:DataServices>" +
    "<Schema xmlns=\"http://docs.oasis-open.org/odata/ns/edm\" Namespace=\"test\">" +
      "<Function Name=\"TestFunction\">" +
        "<Parameter Name = \"param\" Type=\"Edm.String\"/>" +
        "<Parameter Name = \"requiredParam\" Type=\"Edm.String\">" +
            "<Annotation Term=\"Org.OData.Core.V1.OptionalParameter\">" +
              "<Record>" +
                "<PropertyValue Property=\"IsOptional\" String=\"false\"/>" +
              "</Record>" +
            "</Annotation>" +
        "</Parameter>" +
        "<Parameter Name = \"optionalParam\" Type=\"Edm.String\">" +
            "<Annotation Term=\"Org.OData.Core.V1.OptionalParameter\"/>" +
        "</Parameter>" +
        "<Parameter Name = \"optionalParamWithDefault\" Type=\"Edm.String\">" +
            "<Annotation Term=\"Org.OData.Core.V1.OptionalParameter\">" +
              "<Record>" +
                "<PropertyValue Property=\"DefaultValue\" String=\"Smith\"/>" +
              "</Record>" +
            "</Annotation>" +
        "</Parameter>" +
        "<ReturnType Type=\"Edm.Boolean\"/>" +
      "</Function>" +
      "<EntityContainer Name=\"Default\">" +
        "<FunctionImport Name=\"TestFunction\" Function=\"test.TestFunction\"/>" +
      "</EntityContainer>" +
    "</Schema>" +
  "</edmx:DataServices>" +
"</edmx:Edmx>";

Hubert: having an IsOptional property with value false in an annotation named OptionalParameter is confusing

Mark: Agrees

Ralf: I also agree, had that qualm when applying the issue

George: Does not see this as a problem

Mike: as application of issue differs from resolution, we need to capture this change

George: I move to approve. Hubert seconds

.

Mike: I move to amend the motion to include the fact that, in the application, we have explicitly omitted the IsOptional property of the OptionalParameterType. Hubert seconds

.

Ralf,Mike: Motion to amend the motion passes

Ralf,Mike: amended motion passes, ODATA-1066 is CLOSED as applied

George: Move to approve resolution to ODATA-1084

5.2 Issues to resolve for V4.01 CSD02

5.2.1 ODATA-1084 - Rule searchWord is too restrictive

Ralf: ODATA-1084 is OPEN

George: I move to approve resolution to ODATA-1084. Mark seconds.

Ralf: ODATA-1084 is RESOLVED as proposed and applied

5.3 Issues to close for V4.01 CSD02

  1. ODATA-890 - Specify how to get from a JSON message to a JSON schema for validating this message
  2. ODATA-902 - 4.5.2: make "annotations" a hash-map with the target as key
  3. ODATA-907 - Consider Swagger for describing OData metadata in JSON format (public comment c201602e00000)
  4. ODATA-910 - Consider format that is tailored for programmatic access (public comment c201602e00002)
  5. ODATA-911 - Miscellanous feedback (public comment c201602e00003)
  6. ODATA-914 - Comments from OASIS Technical Advisory Board (TAB)
  7. ODATA-1066 - Consider supporting optional operation parameters
  8. ODATA-1084 - Rule searchWord is too restrictive

Hubert: I move we accept the reviewed changes in OData 4.01 Part I: Protocol and associated ABNF construction rules, OData Common Schema Definition Language JSON Representation, and the OData Core vocabulary and close the following corresponding issues as applied: ODATA-890, ODATA-902, ODATA-907, ODATA-910, ODATA-911, ODATA-914, ODATA-1066, and ODATA-1084. George seconds.

Ralf: No objections, motion passes

5.4 Publish documents

5.4.1 Motion to publish Part 1 and Part 2

Hubert: I move that the TC approve OData V4.01 Working Draft 02 and all associated artifacts packaged together in https://www.oasis-open.org/committees/download.php/61031/odata-v4.01-csd02-2017-06-21.zip as Committee Specification Draft 02 and designate the Microsoft Word version of the specification as authoritative. I further move that the TC approve submitting the aforementioned Committee Specification Draft 02 for 30 days of public review. George seconds.

Ralf: No objections, motion passes

6. Next meetings

6.1 Next Meeting on Thursday June 29, 2017 during 8-10 am PDT (17:00-19:00 CEST)

All agree

7. AOB and wrap up

None

Meeting adjourned by chair.