ZekiLiu opened a new pull request, #938:
URL: https://github.com/apache/incubator-graphar/pull/938

   ### Reason for this PR
   
   This draft PR shows the complete Go SDK metadata implementation direction for
   #828.
   
   The Go SDK should be able to represent GraphAr info metadata in Go, load and
   save the same YAML schema used by the existing implementations, and validate
   that the metadata layer interoperates with the repository fixtures.
   
   This PR is stacked on top of the Go SDK bootstrap PR so reviewers can first
   review the small module/CI foundation and then inspect the metadata API 
design
   separately.
   
   Refs #828.
   
   ### What changes are included in this PR?
   
   This PR adds the Go SDK metadata layer:
   
   - add primitive metadata types, including `FileType`, `Cardinality`,
     `AdjListType`, `InfoVersion`, and `DataType`
   - add GraphAr info model types, including `Property`, `PropertyGroup`,
     `AdjacentList`, `VertexInfo`, `EdgeInfo`, and `GraphInfo`
   - add YAML load/save support for GraphAr info files
   - add validation paths aligned with the existing GraphAr metadata rules
   - add cross-language interoperability and end-to-end tests over GraphAr
     fixtures
   
   Stacking setup:
   
   - base branch: `828-go-sdk-module-bootstrap`
   - head branch: `828-go-sdk-info`
   
   After the bootstrap PR is merged, this branch should be rebased onto the 
updated
   `main` branch. Because GraphAr squash-merges PRs, the duplicate bootstrap 
commit
   should be removed during that rebase.
   
   ### Are these changes tested?
   
   The intended local and CI checks are:
   
   - `cd go/graphar && go mod tidy`
   - `cd go/graphar && go test ./...`
   - `cd go/graphar && go test -race ./...`
   - `cd go/graphar && make ci`
   - `pre-commit run --files <changed files>`
   
   The interop test is expected to use the repository `testing/` fixtures when 
the
   submodule is available.
   
   ### Are there any user-facing changes?
   
   Yes. This adds new Go SDK metadata APIs for GraphAr info files. It does not
   change the existing C++, Java, Rust, Spark, or PySpark APIs.
   
   ## Checklist
   
   - [x] I have performed a self-review of my own code.
   - [x] I have formatted my own code using `make cpplint` before submitting 
when changed files are in the `cpp` directory. (Not applicable: this PR does 
not change files in the `cpp` directory.)
   - [x] I have performed `pre-commit run` before commit the changed files.
   - [x] I have added tests to prove my changes are effective.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to