Skip to content

Commit

Permalink
Merge pull request #1099 from FarmBot/rel-9.0.0
Browse files Browse the repository at this point in the history
 Release v9.0.0, Jolly Juniper
  • Loading branch information
RickCarlino authored Dec 30, 2019
2 parents 2040040 + be4241a commit 398f15c
Show file tree
Hide file tree
Showing 161 changed files with 5,139 additions and 1,182 deletions.
13 changes: 13 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,14 @@ install_libnl: &install_libnl
apt-get update
apt-get install pkg-config libnl-genl-3-dev -y
install_mdl: &install_mdl
run:
name: Install libnl
command: |
apt-get update
apt-get install ruby -y
gem install mdl
build_firmware_steps: &build_firmware_steps
steps:
- checkout
Expand Down Expand Up @@ -376,6 +384,7 @@ jobs:
- run: git submodule update --init --recursive
- <<: *install_elixir
- <<: *install_hex_archives
- <<: *install_mdl
- restore_cache:
keys:
- v14-fbsupport-test-dependency-cache-{{ checksum "mix.lock" }}
Expand All @@ -397,6 +406,10 @@ jobs:
- restore_cache:
keys:
- v14-fbos-coverage-cache-{{ .Branch }}-{{ .Revision }}
- run:
name: Check documentation formatting
command: |
mdl docs/
- run:
name: Report Coverage
working_directory: /nerves/build/
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

# 9.0.0
* Run updates on Nerves systems.
* Updates to the way `set_servo_angle` is handled.
* Fixes rip0 firmware flash issues.

# 8.2.4
* Bug fixes
* fix Farmware causing sequences to exit
Expand Down
2 changes: 2 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
# Contributing
To get started, <a href="https://www.clahub.com/agreements/FarmBot/farmbot_os">sign the Contributor License Agreement</a>.

After that, read through the [documentation](docs/index.md)
1 change: 1 addition & 0 deletions FEATURE_MIN_VERSIONS.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"endstop_invert": "6.4.1",
"express_k10": "8.0.0",
"farmduino_k14": "6.4.4",
"farmduino_k15": "9.0.0",
"firmware_restart": "8.0.0",
"flash_firmware": "8.0.0",
"groups": "8.1.0",
Expand Down
10 changes: 8 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: all clean format
.PHONY: all clean format docs deps
.DEFAULT_GOAL: all

MIX_ENV := $(MIX_ENV)
Expand Down Expand Up @@ -51,6 +51,12 @@ format:

deps:
@for project in $(PROJECTS) ; do \
echo Fetching deps: $$project ; \
echo Fetching deps for $$project ; \
cd $$project && mix deps.get && cd .. ; \
done

docs:
@for project in $(PROJECTS) ; do \
echo Building docs for $$project ; \
cd $$project && mix docs && cd .. ; \
done
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Download the version of FarmBot OS that corresponds to the FarmBot kit and compu

| FarmBot Kit | Computer | Download Link |
| --- | --- | --- |
| Genesis v1.2, Genesis v1.3, Genesis v1.4, Genesis XL v1.4 | Raspberry Pi 3 | [Download FBOS](https://github.com/FarmBot/farmbot_os/releases/download/v8.2.3/farmbot-rpi3-8.2.3.img) |
| Genesis v1.2, Genesis v1.3, Genesis v1.4, Genesis XL v1.4 | Raspberry Pi 3 | [Download FBOS](https://github.com/FarmBot/farmbot_os/releases/download/v9.0.0/farmbot-rpi3-9.0.0.img) |
| Express v1.0, Express XL v1.0 | Raspberry Pi Zero W | Coming soon |

---
Expand Down Expand Up @@ -49,14 +49,14 @@ _Refer to the [software documentation Configurator page](https://software.farm.b

## Problems?

See the [FAQ](docs/FAQ.md)
If your problem isn't solved there please file an issue on [Github](https://github.com/FarmBot-Labs/farmbot_os/issues/new)
See the [FAQ](docs/target_development/target_faq.md)
If your problem isn't solved there please file an issue on [Github](https://github.com/FarmBot/farmbot_os/issues/new)

## Security Concerns?

We take security seriously and value the input of independent researchers. Please see our [responsible disclosure guidelines](https://farm.bot/responsible-disclosure-of-security-vulnerabilities/).

## Want to Help?

[Low Hanging Fruit](https://github.com/FarmBot-Labs/farmbot_os/search?utf8=%E2%9C%93&q=TODO)
[Low Hanging Fruit](https://github.com/FarmBot/farmbot_os/search?utf8=%E2%9C%93&q=TODO)
[Development](CONTRIBUTING.md)
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8.2.4
9.0.0
29 changes: 0 additions & 29 deletions docs/DEVELOPMENT.md

This file was deleted.

43 changes: 0 additions & 43 deletions docs/SSH.md

This file was deleted.

145 changes: 80 additions & 65 deletions docs/celery_script/all_nodes.md
Original file line number Diff line number Diff line change
@@ -1,73 +1,88 @@
# All CeleryScript Nodes

This list is split into three categories.
* RPC Nodes - Nodes that control Farmbot's state, but don't don't command
a real world side effect. This includes:
* updating configuration data.
* syncing.
* starting/stopping a process of some sort.
* rebooting
* Command Nodes - Nodes that physically do something. This includes:
* moving the gantry.
* writing or reading a GPIO.
* Data Nodes - Nodes that simply contain data. They are not to be executed.
This includes:
* explanation
* location data

## RPC Nodes
| Name | Args | Body |
|:-------------------------------|:-------------------------------------:|:-------------------------:|
| `check_updates` | `package` | --- |
| `config_update` | `package` | `pair` |
| `uninstall_farmware` | `package` | --- |
| `update_farmware` | `package` | --- |
| `rpc_request` | `label` | more command or rpc nodes |
| `rpc_ok` | `label` | --- |
| `rpc_error` | `label` | `explanation` |
| `install farmware` | `url` | --- |
| `read_status` | --- | --- |
| `sync` | --- | --- |
| `power_off` | --- | --- |
| `reboot` | --- | --- |
| `factory_reset` | --- | --- |
| `set_usr_env` | --- | `pair` |
| `install_first_party_farmware` | --- | --- |
| `change_ownership` | --- | `pair` |
| `dump_info` | --- | --- |

Nodes that control Farmbot's state, but don't don't command
a real world side effect. This includes:

* updating configuration data.
* syncing.
* starting/stopping a process of some sort.
* rebooting

### RPC Node Table

| Name | Args | Body |
|:-: | :--:|:--:|
| `check_updates`| `package`| ---|
| `config_update`| `package`| `pair`|
| `uninstall_farmware`| `package`| ---|
| `update_farmware`| `package`| ---|
| `rpc_request`| `label`| `command` or `rpc` nodes|
| `rpc_ok`| `label`| ---|
| `rpc_error`| `label`| `explanation`|
| `install farmware`| `url`| ---|
| `read_status`| --- | ---|
| `sync`| --- | ---|
| `power_off`| --- | ---|
| `reboot`| --- | ---|
| `factory_reset`| --- | ---|
| `set_usr_env`| --- | `pair`|
| `install_first_party_farmware`|---|---|
| `change_ownership`| --- | `pair`|
| `dump_info`| --- | ---|

## Command Nodes
| Name | Args | Body |
|:-------------------------------|:-------------------------------------:|:-------------------------:|
| `_if` | `lhs`, `op`, `rhs`, `_then`, `_else` | `pair` |
| `write_pin` | `pin_number`, `pin_value`, `pin_mode` | --- |
| `read_pin` | `pin_number`, `pin_value`, `pin_mode` | --- |
| `move_absolute` | `location`, `speed`, `offset` | --- |
| `set_servo_angle` | `pin_number`, `pin_value` | --- |
| `send_message` | `message`, `message_type` | `channel` |
| `move_relative` | `speed`, `x`, `y`, `z` | --- |
| `sequence` | `version`, `locals` | more command nodes |
| `home` | `speed`, `axis` | --- |
| `find_home` | `speed`, `axis` | --- |
| `wait` | `milliseconds` | --- |
| `execute` | `sequence_id` | --- |
| `toggle_pin` | `pin_number` | --- |
| `execute_script` | `package` | `pair` |
| `zero` | `axis` | --- |
| `calibrate` | `axis` | --- |
| `emergency_lock` | --- | --- |
| `emergency_unlock` | --- | --- |
| `take_photo` | --- | --- |

Nodes that physically do something. This includes:

* moving the gantry.
* writing or reading a GPIO.

### Command Node Table

| Name | Args | Body |
|:-: | :--:|:--:|
| `_if`| `lhs`, `op`, `rhs`, `_then`, `_else`| `pair`|
| `write_pin`| `pin_number`, `pin_value`, `pin_mode`| ---|
| `read_pin`| `pin_number`, `pin_value`, `pin_mode`| ---|
| `move_absolute`| `location`, `speed`, `offset`| ---|
| `set_servo_angle`| `pin_number`, `pin_value`| ---|
| `send_message`| `message`, `message_type`| `channel`|
| `move_relative`| `speed`, `x`, `y`, `z`| ---|
| `sequence`| `version`, `locals`| `any command node`|
| `home`| `speed`, `axis`| ---|
| `find_home`| `speed`, `axis`| ---|
| `wait`| `milliseconds`| ---|
| `execute`| `sequence_id`| ---|
| `toggle_pin`| `pin_number`| ---|
| `execute_script`| `package`| `pair`|
| `zero`| `axis`| ---|
| `calibrate`| `axis`| ---|
| `emergency_lock`| ---| ---|
| `emergency_unlock`| ---| ---|
| `take_photo`| ---| ---|

## Data Nodes
| Name | Args | Body |
|:-------------------------------|:-------------------------------------:|:-------------------------:|
| `point` | `pointer_type`, `pointer_id` | --- |
| `named_pin` | `pin_type`, `pin_id` | --- |
| `pair` | `label`, `value` | --- |
| `channel` | `channel_name` | --- |
| `coordinate` | `x`, `y`, `z` | --- |
| `tool` | `tool_id` | --- |
| `explanation` | `message` | --- |
| `identifier` | `label` | --- |
| `nothing` | --- | --- |
| `scope_declaration` | --- | `parameter_decleration`, `variable_decleration` |

Nodes that simply contain data. They are not to be executed. This includes:

* explanation
* location data

### Data Node Table

| Name | Args | Body |
|:-: | :--:|:--:|
| `point`| `pointer_type`, `pointer_id`| ---|
| `named_pin`| `pin_type`, `pin_id`| ---|
| `pair`| `label`, `value`| ---|
| `channel`| `channel_name`| ---|
| `coordinate`| `x`, `y`, `z`| ---|
| `tool`| `tool_id`| ---|
| `explanation`| `message`| ---|
| `identifier`| `label`| ---|
| `nothing`| ---| ---|
| `scope_declaration`| ---| `parameter_decleration` or `variable_decleration`|
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# CeleryScript Assert expressions.
# CeleryScript Assert expressions

The CeleryScript `if` block takes a possible left hand side value of
`expression` which allows an arbitrary string to be evaluated. This
expression is evaluated against a lua 5.2 interpreter.
`expression` which allows an arbitrary string to be evaluated. This
expression is evaluated against a lua 5.2 interpreter.

## Lua API
The following functions are available for usage along with [Lua's
standard library](https://www.lua.org/manual/5.2/).

The following functions are available for usage along with
[Lua's standard library](https://www.lua.org/manual/5.2/).

```lua
-- Comments are ignored by the interpreter
Expand Down Expand Up @@ -139,8 +140,10 @@ update_firmware_config({encoder_enabled_z = 1.0});
```

## Expression contract

Expressions are expected to be evaluated in a certain way. The evaluation will fail
if this contract is not met. An expression should return one of the following values:

* `true`
* `false`
* `("error", "string reason signaling an error happened")`
Expand Down
Loading

0 comments on commit 398f15c

Please sign in to comment.