Programming involves a collection of tools, often referred to as the "tool chain" since they are used more or less in sequence. Here's a graphical representation of the tool chain for programming picos, noting each stage. We'll use this to organize the remainder of this document.
With the pre-commit hook in place, you're assured that there are no parse errors in your ruleset if it commits.
Deploying consists of installing the ruleset in any picos it needs to run in. If the ruleset has already been installed, then it will just need to be flushed.
Install the ruleset in your pico by navigating to the Rulesets tab in the developer interface.
To install the ruleset, you need its URL. If you are committing to Github, then you can use the raw URL from Github.
If you are running locally for testing, then you can install from the file using file:// followed by the full path to the KRL file. Note that you'll end up with something like file:///Users/pjw/... with three slashes after file:.
Once the ruleset is installed, it will show up in the Installed Rulesets section of this page.
Because the engine compiles and caches the ruleset, whenever you make changes to the source, you need to flush the ruleset. For development and testing, you can do that manually from the Installed Rulesets section of the develop interface.
This will flush the ruleset for all picos on this instance of the pico-engine. The hash will change with each new version of the file and is unique for every version of the file.
If you have not parsed your rulesets when you commit them (as described above) then the developer interface will show you any errors when you install or flush the ruleset.
The developer interface includes support for testing your rulesets. See the detailed instructions for more information on how to configure and use that feature.
The Logging tab in the developer interface is also helpful in debugging and testing rules.
For local development, there's no need to do anything more than what's specified above for releasing a ruleset.
If you're releasing a ruleset for broader use beyond your own needs, you'll want to take steps to ensure others see a stable ruleset even though you may continue to work on it. Putting your ruleset on an HTTP server allows it to be registered with multiple engines.
The use of versions in your ruleset can ensure that picos see the version they need to operate correctly.