We use the Fork-and-Branch workflow. Start with forking the repository, then create a branch to which you commit modifications.
Don't clone the main repository!
Create a pull request to one of the main branches (e.g. 16_2
) when you are ready to submit your changes. Each pull request should pass all automatic checks and at least one member of the DevExtreme team should review it.
Make sure that you properly configure your Git username and email.
To set up a build environment, you need the following software installed:
- Node.js and npm. We recommend the LTS version.
- .NET Core SDK.
- A web browser for development. We recommend Google Chrome.
Install packages using the following command:
npm install
After installation, the following NPM scripts are available:
npm run lint
- Executes lintersnpm run build
- Builds DevExtreme in the Debug modenpm run build-dist
- Builds DevExtreme in the Release modenpm run build-themes
- Use this script to rebuild CSS themes only
Build results are stored in the "artifacts" directory.
We conduct extensive in-house testing of DevExtreme on different browsers, mobile devices, functional tests for demos, etc. However, we only share some of them on GitHub: linters and automated tests for Google Chrome.
Tests are in the testing directory, and you can execute them are described below:
Run "testing/launch" (for Mac and Linux) or "testing/launch.cmd" (for Windows). This command starts the testing server and opens the test running UI in the default web browser and is the primary way for development and debugging.
If you have Docker installed, you can run tests in the same environment as the online Continuous Integration. Use the following command:
docker run --rm -ti -e TARGET=test -v REPO_PATH:/devextreme devexpress/devextreme-build:TAG ./docker-ci.sh
Make the following replacements in the command line:
REPO_PATH
- absolute path to the local git repository.TAG
- a Docker image tag. It should match the parent branch name (e.g.16_2
). You can find the list of available tags on our Docker Hub page.
The Dockerfile used to build "devexpress/devextreme-build" images is in the build/docker-image directory.
A VNC server is available within the running container. To track test execution, add the -p 5900:5900
parameter to the docker run
command and connect to "localhost:5900" using any VNC client.
Instead of running Docker directly, you can also use Drone CLI.
drone exec --matrix TARGET=test
We provide configuration YAML files for Travis CI (.travis.yml) and Shippable (shippable.yml). Enable one of them for your forked repo (we recommend Travis).
Please make sure that each pull request passes all automatic checks before submitting it.