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:
- Join the mailing list: send an email to [email protected]. Share your ideas and use cases for the project.
- Follow our activity on JIRA
- Learn the format
- Contribute code to one of the reference implementations
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 [email protected] 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 [email protected]
npm run clean
- cleans targetsnpm run build
- cleans and compiles all targetsnpm test
- executes tests against built targets
These npm scripts accept argument lists of targets × modules:
- Available
targets
arees5
,es2015
,esnext
, andall
(default:all
) - Available
modules
arecjs
,esm
,umd
, andall
(default:all
)
Examples:
npm run build
-- builds all ES targets in all module formatsnpm run build -- -t es5 -m all
-- builds the ES5 target in all module formatsnpm run build -- -t all -m cjs
-- builds all ES targets in the CommonJS module formatnpm run build -- --targets es5 es2015 -m all
-- builds the ES5 and ES2015 targets in all module formatsnpm 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.
- Once generated, the flatbuffers format code needs to be adjusted for our build scripts (assumes
gnu-sed
):
cd $ARROW_HOME
flatc --ts -o ./js/src/fb ./format/{File,Schema,Message}.fbs
cd ./js/src/fb
# Rename the existing files to <filename>.bak.ts
mv File{,.bak}.ts && mv Schema{,.bak}.ts && mv Message{,.bak}.ts
# Remove `_generated` from the ES6 imports of the generated files
sed -i '+s+_generated\";+\";+ig' *_generated.ts
# Fix all the `flatbuffers` imports
sed -i '+s+./flatbuffers+flatbuffers+ig' *_generated.ts
# Fix the Union createTypeIdsVector typings
sed -i -r '+s+static createTypeIdsVector\(builder: flatbuffers.Builder, data: number\[\] \| Uint8Array+static createTypeIdsVector\(builder: flatbuffers.Builder, data: number\[\] \| Int32Array+ig' Schema_generated.ts
# Add `/* tslint:disable:class-name */` to the top of `Schema.ts`
echo -e '/* tslint:disable:class-name */\n' | cat - Schema_generated.ts > Schema1.ts && mv Schema1.ts Schema_generated.ts
# Remove "_generated" suffix from TS files
mv File{_generated,}.ts && mv Schema{_generated,}.ts && mv Message{_generated,}.ts
- Manually remove
Tensor
andSparseTensor
imports and exports - Execute
npm run lint
from thejs
directory to fix the linting errors