Skip to content
This repository has been archived by the owner on Dec 25, 2021. It is now read-only.

Implementations status #26

Closed
roll opened this issue Nov 9, 2017 · 17 comments
Closed

Implementations status #26

roll opened this issue Nov 9, 2017 · 17 comments

Comments

@roll
Copy link
Member

roll commented Nov 9, 2017

Frictionless Data Implementations

In a requirements section we list all required functionality. Then in per language sections we list what's missed for now. Not every missing thing should be implemented right now - some stuff (like foreign keys) could be backlogged for a while for some implementation. But in this document we're trying to draw the whole picture.

Requirements

High-level requirements reference. It uses italics for requirements not directly mentioned in the implementation requirements document:

  • tableschema
    • read and validate a table schema descriptor
    • create and edit a table schema descriptor
    • provide an API to interact with a table schema descriptor
    • infer a table schema descriptor from a supplied sample of data
    • validate a data source against the table schema descriptor, including in response to editing the descriptor
    • streaming and reading of a data source through a table schema with cast on iteration
    • save a table schema descriptor to a file path
    • cover the latest changes in the spec such as bareNumber, true/falseValues, string PK/FK etc
    • support true data streaming
    • support all data constraints
    • support all data types
  • datapackage
    • read and validate a data package descriptor, including profile-specific validation via the registry of JSON Schemas
    • create and edit a data package descriptor, including methods to add and remove resources and validation after editing
    • provide an API to interact with a data package descriptor
    • streaming and reading of resources through a table schema with cast on iteration
    • save a data package descriptor to a file path
    • save a data package as a zip file on disc
    • read a zip file containing a data package
    • cover the latest changes in the specs such as string/array for path etc
    • support for schema dereferencing before validation
    • support for multipart resources
    • support for csv dialects

Python

Repositories:

Maintainers:

JavaScript

Not implemented requirements:

  • datapackage
    • save a data package as a zip file on disc - #93
    • read a zip file containing a data package - #93
    • support for multipart resources - #79
    • support for csv dialects - #86

Repositories:

Maintainers:

Ruby

Not implemented requirements:

  • datapackage
    • save a data package as a zip file on disc - #49
    • read a zip file containing a data package - #49
    • support for multipart resources - #37
    • support for csv dialects - #51

Repositories:

Maintainers:

PHP

Not implemented requirements:

  • tableschema
    • infer a Table Schema descriptor from a supplied sample of data - no stand-alone function - #33
    • cover the latest changes in specs such as bareNumber, true/falseValues, string PK/FK etc - #34
  • datapackage
    • read a zip file containing a data package? - #31
    • support for schema dereferencing before validation? - #37
    • support for multipart resources? - #33
    • support for csv dialects - #34

Repositories:

Maintainers:

Java

Requirements to implement:

  • tableschema
    • support true data streaming - it seems for now we read to memory in this.data = this.reader.readAll() - #9
    • cover the latest changes in the spec such as bareNumber, true/falseValues, string PK/FD - #4
  • datapackage
    • read and validate a data package descriptor, including profile-specific validation via the registry of JSON Schemas - #6
    • create and edit a data package descriptor, including methods to add and remove resources and validation after editing - #7
    • provide an API to interact with a data package descriptor - #8
    • streaming and reading of resources through a table schema with cast on iteration - #9
    • save a data package descriptor to a file path - #10
    • save a data package as a zip file on disc - #11
    • read a zip file containing a data package - #12
    • cover the latest changes in the specs such as string/array for path etc - #13
    • support for schema dereferencing before validation - #14
    • support for multipart resources - #15
    • support for csv dialects - #16

Repositories:

Maintainers:

Go

Not implemented requirements:

  • datapackage
    • read and validate a data package descriptor, including profile-specific validation via the registry of JSON Schemas
    • create and edit a data package descriptor, including methods to add and remove resources and validation after editing
    • provide an API to interact with a data package descriptor
    • streaming and reading of resources through a table schema with cast on iteration
    • save a data package descriptor to a file path
    • save a data package as a zip file on disc
    • read a zip file containing a data package
    • cover the latest changes in the specs such as string/array for path etc
    • support for schema dereferencing before validation
    • support for multipart resources
    • support for csv dialects

Repositories:

Maintainers:

R

Requirements to implement:

  • tableschema
    • read and validate a table schema descriptor
    • create and edit a table schema descriptor
    • provide an API to interact with a table schema descriptor
    • infer a table schema descriptor from a supplied sample of data
    • validate a data source against the table schema descriptor, including in response to editing the descriptor
    • streaming and reading of a data source through a table schema with cast on iteration
    • save a table schema descriptor to a file path
    • cover the latest changes in the spec such as bareNumber, true/falseValues, string PK/FK etc
    • support true data streaming
  • datapackage
    • read and validate a data package descriptor, including profile-specific validation via the registry of JSON Schemas
    • create and edit a data package descriptor, including methods to add and remove resources and validation after editing
    • provide an API to interact with a data package descriptor
    • streaming and reading of resources through a table schema with cast on iteration
    • save a data package descriptor to a file path
    • save a data package as a zip file on disc
    • read a zip file containing a data package
    • cover the latest changes in the specs such as string/array for path etc
    • support for schema dereferencing before validation
    • support for multipart resources
    • support for csv dialects

Repositories:

Maintainers:

Clojure

Requirements to implement:

  • tableschema
    • read and validate a table schema descriptor
    • create and edit a table schema descriptor
    • provide an API to interact with a table schema descriptor
    • infer a table schema descriptor from a supplied sample of data
    • validate a data source against the table schema descriptor, including in response to editing the descriptor
    • streaming and reading of a data source through a table schema with cast on iteration
    • save a table schema descriptor to a file path
    • cover the latest changes in the spec such as bareNumber, true/falseValues, string PK/FK etc
    • support true data streaming
    • support all data constraints
    • support all data types
  • datapackage
    • read and validate a data package descriptor, including profile-specific validation via the registry of JSON Schemas
    • create and edit a data package descriptor, including methods to add and remove resources and validation after editing
    • provide an API to interact with a data package descriptor
    • streaming and reading of resources through a table schema with cast on iteration
    • save a data package descriptor to a file path
    • save a data package as a zip file on disc
    • read a zip file containing a data package
    • cover the latest changes in the specs such as string/array for path etc
    • support for schema dereferencing before validation
    • support for multipart resources
    • support for csv dialects

Repositories:

Maintainers:

Julia

Requirements to implement:

  • tableschema
    • read and validate a table schema descriptor
    • create and edit a table schema descriptor
    • provide an API to interact with a table schema descriptor
    • infer a table schema descriptor from a supplied sample of data
    • validate a data source against the table schema descriptor, including in response to editing the descriptor
    • streaming and reading of a data source through a table schema with cast on iteration
    • save a table schema descriptor to a file path
    • cover the latest changes in the spec such as bareNumber, true/falseValues, string PK/FK etc
    • support true data streaming
    • support all data constraints
    • support all data types
  • datapackage
    • read and validate a data package descriptor, including profile-specific validation via the registry of JSON Schemas
    • create and edit a data package descriptor, including methods to add and remove resources and validation after editing
    • provide an API to interact with a data package descriptor
    • streaming and reading of resources through a table schema with cast on iteration
    • save a data package descriptor to a file path
    • save a data package as a zip file on disc
    • read a zip file containing a data package
    • cover the latest changes in the specs such as string/array for path etc
    • support for schema dereferencing before validation
    • support for multipart resources
    • support for csv dialects

Repositories:

Maintainers:

@roll roll changed the title Implementation status Implementations status Nov 9, 2017
@roll
Copy link
Member Author

roll commented Nov 9, 2017

Java update:

@roll
Copy link
Member Author

roll commented Nov 9, 2017

Go update:

@roll
Copy link
Member Author

roll commented Nov 9, 2017

@serahrono @OriHoch @georgeslabreche @danielfireman @kleanthisk10 @cblop @loleg
I think the best way for us to communicate updates will be this issue. So I've moved the hackmd document to here. I've added a few updates as examples (and updated the main issue message)

@danielfireman
Copy link

tableschema-go v1.0 released: https://github.com/frictionlessdata/tableschema-go/releases

@roll
Copy link
Member Author

roll commented Nov 13, 2017

@danielfireman
Great! Congratulations!

@danielfireman
Copy link

Go update:

  • read and validate a data package descriptor, including profile-specific validation via the registry of JSON Schemas
  • create and edit a data package descriptor, including methods to add and remove resources and validation after editing
  • provide an API to interact with a data package descriptor
  • streaming and reading of resources through a table schema with cast on iteration

@roll , could you please take a look?

@roll
Copy link
Member Author

roll commented Nov 22, 2017

@danielfireman
Great. Thanks! I'll review in coming days (hopefully it's not blocking).

@danielfireman
Copy link

danielfireman commented Nov 23, 2017

Go update:

  • save a data package descriptor to a file path
  • save a data package as a zip file on disc
  • read a zip file containing a data package
  • cover the latest changes in the specs such as string/array for path etc

@danielfireman
Copy link

Go update:

  • support for schema dereferencing before validation
  • support for multipart resources
  • support for csv dialects

All done. Ready for a complete review 😃

@georgeslabreche
Copy link

georgeslabreche commented Nov 28, 2017

Java update for the datapackage:

@roll
Copy link
Member Author

roll commented Nov 29, 2017

@danielfireman
@georgeslabreche
As discussed with Daniel unfortunately I'll be able to review and commit changes to first post only on next week. For now trying to unblock everyone and looking forward for next week reviews.

@georgeslabreche
Copy link

@roll I'll just keep updating that list in the meantime.

@OriHoch
Copy link

OriHoch commented Nov 30, 2017

Php update:

  • tableschema: all issues fixed
  • datapackage:
    • read a zip file containing a data package? done
    • support for csv dialects done

@danielfireman
Copy link

Hi @roll, good morning. Could you please finish the datapackage-go review?

@roll
Copy link
Member Author

roll commented Dec 25, 2017

@danielfireman
Hi, unfortunately I still can't have allocated time for it.. We're considering it's done.

@Stephen-Gates
Copy link

Stephen-Gates commented Jan 17, 2018

I wonder if it would also be useful for apps that use these implementations to provide an implementation statement. e.g. Data Curator implements:

  • data package (partial)
    • only tabular data packages
    • cannot add properties:
      • homepage
      • image
      • keywords
      • created
  • data resource (partial)
    • only tabular data packages
    • cannot add properties:
      • data in-line data
      • path data at a url
      • bytes
      • hash
  • tabular data package
  • tabular data resources (partial)
    • cannot add:
      • JSON tabular data
      • schema at url
      • CSV dialect at a url
  • table schema
  • CSV dialect (planned partial support)
    • "delimiter": ,, ;, or /t
    • "header": true
  • Data package version pattern
  • Table Schema: Foreign Keys to Data Packages pattern (planned)
    ...

Suggest this would be done at the spec level unless there is partial implementations

@roll
Copy link
Member Author

roll commented Apr 13, 2020

High-level statuses are here now - https://github.com/frictionlessdata/software/blob/master/STATUS.md

@roll roll closed this as completed Apr 13, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants