Coder Social home page Coder Social logo

schema's Introduction

Schema

Version v0.18.3

The Schema repository holds the protocol buffer message schemas used to exchange data between systems. The commands below will create Protobuf classes for use in iOS, Python, Golang, and JVM (Clojure, Java, Android) runtimes. Javascript will use the actions.json and events.json since the contents of these files are already native to the language.

Build Artifacts

docker run -it -v <ABSOLUTE_PATH_TO>/schema:/code quay.io/boundlessgeo/schema bash script/<LANGUAGE>.sh

Commits merged to master must increment the version in script/version.json.

Golang source must be updated manually


The schema definitions are contained in actions.json and events.json. For artifacts that need/use a version number, the version is in script/version.json. Any PRs that make changes to the schema (or add/delete schema definition files) should always bump the version in script/version.json. The helper scripts (documented below) will convert the schema JSON files into appropriate source for the target language/platform and compile the artifact, versioning them where applicable. The bulk of the conversion logic is contained and documented in script/index.sh.

Currently, there is a Jenkins job that will automatically deploy the Java and Python artifacts, located here:

https://ciapi.boundlessgeo.io/job/boundless-schema-deploy

Any time a commit is pushed to master, that job will pick up the changes and deploy new artifacts.

  • java.sh will put a schema jar in your local maven repo
  • objc.sh will build to a folder called objc_build in the root dir
  • python.sh will build a distribution in the python/dist directory
  • golang.sh places go source in pkg/schema

schema's People

Contributors

emerkle826 avatar frankrowe avatar georific avatar joshkendrick avatar mrcnc avatar tetriscode avatar yancymatherne avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

schema's Issues

Missing module during build

When building with sh script/java.sh , it succeeds but an error message appears at the beginning of the build:

module.js:471
    throw err;
    ^

Error: Cannot find module 'rx'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Users/agoudine/repos/schema/script/index.js:6:10)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
mv: rename Actions.java to ./java/src/main/java/com/boundlessgeo/schema/Actions.java: No such file or directory
script/java.sh: line 5: protoc: command not found
script/java.sh: line 6: protoc: command not found

Same message occurred during node script/index.js objc.

build doesn't work on macOS

The dirname command doesn't work the same for bash on macOS so we're not able to compile all of the source files.

$ sh script/java.sh
readlink: illegal option -- f
usage: readlink [-n] [file ...]
script/java.sh: line 23: ./index.sh: No such file or directory

This is a "nice to have" b/c Jenkins should be building and publishing these artifacts anyway

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.