The CDK is developed actively, and we welcome any contribution you can provide!
-
First of all, open an issue in the repository, describing the contribution you would like to make, the bug you found, or any other ideas you have. This will help us to get you started on the right foot.
-
Note: if you're reporting a bug that you can reproduce within the CDK, please use the "Report an Issue" button under the Help menu. This will provide us with some more information about your editor state to pinpoint the issue.
-
It is recommended to wait for feedback before continuing to next step. However, if the issue or its solution is clear and the fix is simple, feel free to continue and fix it.
-
Fork the mixer/cdk repo, clone it, and run
npm install
to grab your dependencies. -
Make your changes in a new git branch:
git checkout -b my-fix-branch master
-
Make your changes.
-
Run
npm start
to boot the editor and validate your changes locally. -
Run
npm run fmt
to ensure the code follows our style. and ensure that all tests pass. -
Commit your changes using a descriptive commit message that follows our commit message convenstyletions.
git commit -a
Note: the optional commit
-a
command line option will automatically "add" and "rm" edited files. -
Push your branch to GitHub:
git push origin my-fix-branch
-
In GitHub, send a pull request to
cdk:master
. If we suggest changes then:- Make the required updates.
- Re-run
npm run fmt
- Commit your changes and run
git push
The CDK, formerly codename miix
, is an Electron application. Electron runs code in two processes, the renderer and main process. The renderer is a fairly vanilla Chromium frame, the main process is a Node.js process. UI logic is written in Angular 5 with state managed by ngrx, essentially Redux (with more standard library) for Angular. UI elements are sourced from Angular Material, with layout primitives copied from the Mixer UI library. We make heavy use of rxjs. Resources:
The renderer makes calls to the main process via the ElectronService, which enters in `src/server/electron-server.ts. The ElectronService puts a light RPC layer atop Electron's IPC. Operations are disparate but all pretty simple.