You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This section is for those who want to contribute to the pico-engine source code.
KRL programmers would be better off following the link in the previous section.
The pico-engine is made up of several smaller modules. Each with their own documentation and test suite.
However they live in this repository in the packages/ directory (mono-repo style using lerna)
pico-engine - this is the npm package people install and use
pico-engine-core - executes compiled KRL and manages event life-cycle
pico-engine-ui - the default UI of pico-engine
krl-stdlib - standard library for KRL
krl-compiler - compiles AST into a JavaScript module
krl-parser - parses KRL to produce an abstract syntax tree (String -> AST)
krl-generator - generates KRL from an AST (AST -> String)
krl-editor - in browser editor for KRL
To run the pico-engine in development mode do the following:
$ git clone https://github.com/Picolab/pico-engine.git
$ cd pico-engine
$ npm run setup
$ npm start
That will start the server and run the test. npm start is simply an alias for cd packages/pico-engine && npm start
NOTE about dependencies: generally don't use npm i, rather use npm run setup from the root. lerna will link up the packages so when you make changes in one package, it will be used in others.
Working in sub-package
Each sub-package has it's own tests. And the npm start command is wired to watch for file changes and re-run tests when you make changes. For example, to make changes to the parser:
$ cd packages/krl-parser/
$ npm start
NOTE: When running via npm start the PICO_ENGINE_HOME will default to your current directory i.e. your clone of this repository.
Making changes
Use a branch (or fork) to do your work. When you are ready, create a pull request. That way we can review it before merging it into master.