Getting Involved

Even if you do not plan to contribute to Apache Arrow itself or Arrow integrations in other projects, we'd be happy to have you involved:

We prefer to receive contributions in the form of GitHub pull requests. Please send pull requests against the github.com/apache/arrow repository.

If you are looking for some ideas on what to contribute, check out the JIRA issues for the Apache Arrow project. Comment on the issue and/or contact dev@arrow.apache.org with your questions and ideas.

If you’d like to report a bug but don’t have time to fix it, you can still post it on JIRA, or email the mailing list dev@arrow.apache.org

The npm scripts

  • npm run clean - cleans targets
  • npm run build - cleans and compiles all targets
  • npm test - executes tests against built targets

These npm scripts accept argument lists of targets × modules:

  • Available targets are es5, es2015, esnext, and all (default: all)
  • Available modules are cjs, esm, umd, and all (default: all)

Examples:

  • npm run build -- builds all ES targets in all module formats
  • npm run build -- -t es5 -m all -- builds the ES5 target in all module formats
  • npm run build -- -t all -m cjs -- builds all ES targets in the CommonJS module format
  • npm run build -- --targets es5 es2015 -m all -- builds the ES5 and ES2015 targets in all module formats
  • npm run build -- -t es5 --modules cjs esm -- builds the ES5 target in CommonJS and ESModules module formats

This argument configuration also applies to clean and test scripts.

  • npm run deploy

Uses lerna to publish each build target to npm with conventional changelogs.

Updating the Arrow format flatbuffers generated code

Once generated, the flatbuffers format code needs to be adjusted for our build scripts.

  1. Generate the flatbuffers TypeScript source from the Arrow project root directory:
    cd $ARROW_HOME
    
    flatc --ts -o ./js/src/format ./format/*.fbs
    
    cd ./js/src/format
    
    # Delete Tensor_generated.js (skip this when we support Tensors)
    rm ./Tensor_generated.ts
    
    # Remove "_generated" suffix from TS files
    mv ./File_generated.ts .File.ts
    mv ./Schema_generated.ts .Schema.ts
    mv ./Message_generated.ts .Message.ts
    
  2. Remove Tensor import from Schema.ts
  3. Fix all the flatbuffers imports
    import { flatbuffers } from "./flatbuffers" // <-- change
    import { flatbuffers } from "flatbuffers" // <-- to this
    
  4. Remove _generated from the ES6 imports of the generated files
    import * as NS16187549871986683199 from "./Schema_generated"; // <-- change
    import * as NS16187549871986683199 from "./Schema"; // <------- to this
    
  5. Add /* tslint:disable:class-name */ to the top of Schema.ts
  6. Execute npm run lint to fix all the linting errors