Skip to content
This repository has been archived by the owner on Jul 21, 2020. It is now read-only.

Latest commit

 

History

History
52 lines (34 loc) · 2.67 KB

contributing.md

File metadata and controls

52 lines (34 loc) · 2.67 KB

Contributing

The CDK is developed actively, and we welcome any contribution you can provide!

Discuss your Changes

  • 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.

Make Your Changes

  1. Fork the mixer/cdk repo, clone it, and run npm install to grab your dependencies.

  2. Make your changes in a new git branch:

    git checkout -b my-fix-branch master
  3. Make your changes.

  4. Run npm start to boot the editor and validate your changes locally.

  5. Run npm run fmt to ensure the code follows our style. and ensure that all tests pass.

  6. 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.

  7. Push your branch to GitHub:

    git push origin my-fix-branch
  8. 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

Project Architecture

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.