In order to contribute to luma.gl you need to be able to build and test luma.gl itself.
To get started developing luma.gl, first make sure to install all dependancies from the repository root:
luma.gl's source code is in the
modules/ directory. Development is most easily done by running the examples in development mode, e.g.:
cd examples/core/instancing yarn yarn start-local
Any modifications made to the source or example code will cause the example to rebuild and the page to refresh, making quick iterations on code changes straightforward.
Testing against the full website can be done by running
yarn start in the the
website/. This full website take longer to build but makes it easier to test against all examples. This can be helpful when making core changes to luma.gl. As with running the examples in development mode, a rebuild and page refresh will be triggered whenever source or website code is updated.
Testing is performed on Travis CI and using a precommit hook. Local testing is supported on these environments:
yarn test- runs tests under node using headless.gl and a headless Chrome instance (using SwiftShader).
yarn test browser- Tests in your browser, may be helpful to quickly debug test case failures since it autoreloads on changes and gives you full access to your browser's debugger.
When adding new features, please add relevant unit tests to the
test/ directory in the relevant module.
testin the relevant spec to
test.only. Remember to change this back before committing!
headless, but not in the browser, it's likely due to a difference in the contexts created (WebGL 1 versus 2), or the extensions available. Running in a browser without WebGL 2 support (e.g. Safari), might help narrow the issue down.