Awesome
pico-engine
An implementation of the pico-engine hosted on node.js
Getting Started / Installing / Configuration
See packages/pico-engine for detailed step-by-step instructions to get started.
Contributing
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.
The Pico Labs documentation has a page inviting contributions and giving a step-by-step example, at Pico Engine welcoming your contributions.
Changelog
To view details about versions: CHANGELOG.md
License
MIT