-
Notifications
You must be signed in to change notification settings - Fork 3
docs: refactor readme + guidelines #58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
dido18
wants to merge
31
commits into
main
Choose a base branch
from
add-readme-contributing
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+507
−53
Open
Changes from all commits
Commits
Show all changes
31 commits
Select commit
Hold shift + click to select a range
fe20502
docs: update README and add user documentation
dido18 a8bdd40
docs: enhance contribution guidelines in README
dido18 64a4d59
docs: tidy up README and user documentation formatting
dido18 1975b5c
docs: enhance contributor guide with detailed contribution methods an…
dido18 f56a391
docs: update development guide with additional instructions and resou…
dido18 09c5bb7
Update docs/contributor-guide/development.md
dido18 e23a102
Update docs/contributor-guide/development.md
dido18 b8b72a5
Update docs/contributor-guide/development.md
dido18 3333e7c
Update docs/contributor-guide/development.md
dido18 a923312
Update docs/contributor-guide/issues.md
dido18 bf4c3ba
Update docs/contributor-guide/issues.md
dido18 329e89c
Update docs/user-documentation.md
dido18 6d4c147
Update README.md
dido18 f3ea377
Update README.md
dido18 ae672a5
Update README.md
dido18 b6a9f48
Update README.md
dido18 8657b0a
docs: clarify terminology in Docker images registry section of user d…
dido18 5f0dc9c
docs: simplify description of arduino-app-cli in README.md
dido18 59b9779
docs: update contributor guide for clarity and accuracy
dido18 4a5c08d
docs: update development guide and issue report instructions for clarity
dido18 b6763b0
docs: restructure environment variables section for clarity and organ…
dido18 9892a8e
docs: improve clarity and consistency in user documentation
dido18 de845e8
docs: add bug report and feature request issue templates for better u…
dido18 821e1a1
docs: improve formatting and clarity in environment variables section
dido18 2c25aea
docs: update contribution methods for testing section in CONTRIBUTING.md
dido18 feffe4a
docs: fix formatting in contribution methods table for consistency
dido18 c0b3961
docs: clarify description of temporary files in user documentation
dido18 8a44580
fix: correct contributors link in README.md
dido18 6983bf9
feat: enhance issue templates by adding additional context field and …
dido18 2a26bf7
Update docs/contributor-guide/development.md
dido18 982afd4
Update docs/contributor-guide/development.md
dido18 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| # Source: https://github.com/arduino/tooling-project-assets/blob/main/issue-templates/forms/platform-dependent/bug-report.yml | ||
| # See: https://docs.github.com/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms | ||
|
|
||
| name: Bug report | ||
| description: Report a problem with the code or documentation in this repository. | ||
| labels: | ||
| - "type: imperfection" | ||
| body: | ||
| - type: textarea | ||
| id: description | ||
| attributes: | ||
| label: Describe the problem | ||
| validations: | ||
| required: true | ||
| - type: textarea | ||
| id: reproduce | ||
| attributes: | ||
| label: To reproduce | ||
| description: Provide the specific set of steps we can follow to reproduce the problem. | ||
| validations: | ||
| required: true | ||
| - type: textarea | ||
| id: expected | ||
| attributes: | ||
| label: Expected behavior | ||
| description: What would you expect to happen after following those instructions? | ||
| validations: | ||
| required: true | ||
| - type: input | ||
| id: project-version | ||
| attributes: | ||
| label: Arduino App CLI version | ||
| description: | | ||
| Which version of Arduino App CLI are you using? (output of `arduino-app-cli version` executed inside the board) | ||
| _This should be the most recent version available._ | ||
| validations: | ||
| required: true | ||
| - type: textarea | ||
| id: additional | ||
| attributes: | ||
| label: Additional context | ||
| description: Add any additional information here. | ||
| validations: | ||
| required: false | ||
| - type: checkboxes | ||
| id: checklist | ||
| attributes: | ||
| label: Issue checklist | ||
| description: Please double-check that you have done each of the following things before submitting the issue. | ||
| options: | ||
| - label: I searched for previous reports in [the issue tracker](https://github.com/arduino/arduino-app-cli/issues?q=) | ||
| required: true | ||
| - label: I verified the problem still occurs when using the latest version | ||
| required: true | ||
| - label: My report contains all necessary details | ||
| required: true |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| # Source: https://github.com/arduino/tooling-project-assets/blob/main/issue-templates/forms/platform-dependent/bug-report.yml | ||
| # See: https://docs.github.com/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms | ||
|
|
||
| name: Feature request | ||
| description: Suggest an enhancement to this project. | ||
| labels: | ||
| - "type: enhancement" | ||
| body: | ||
| - type: textarea | ||
| id: description | ||
| attributes: | ||
| label: Describe the request | ||
| validations: | ||
| required: true | ||
| - type: textarea | ||
| id: current | ||
| attributes: | ||
| label: Describe the current behavior | ||
| description: | | ||
| What is the current behavior of Arduino App CLI in relation to your request? | ||
| How can we reproduce that behavior? | ||
| validations: | ||
| required: true | ||
| - type: input | ||
| id: project-version | ||
| attributes: | ||
| label: Arduino App CLI version | ||
| description: | | ||
| Which version of Arduino App CLI are you using? (output of `arduino-app-cli version` executed inside the board) | ||
| _This should be the most recent version available._ | ||
| validations: | ||
| required: true | ||
| - type: textarea | ||
| id: additional | ||
| attributes: | ||
| label: Additional context | ||
| description: Add any additional information here. | ||
| validations: | ||
| required: false | ||
| - type: checkboxes | ||
| id: checklist | ||
| attributes: | ||
| label: Issue checklist | ||
| description: Please double-check that you have done each of the following things before submitting the issue. | ||
| options: | ||
| - label: I searched for previous requests in [the issue tracker](https://github.com/arduino/arduino-app-cli/issues?q=) | ||
| required: true | ||
| - label: I verified the feature was still missing when using the latest version | ||
| required: true | ||
| - label: My request contains all necessary details | ||
| required: true |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,64 +1,43 @@ | ||
| # Arduino App CLI | ||
|
|
||
| `arduino-app-cli` is a command line tool and a service running on Arduino UNO Q boards, that: | ||
| `arduino-app-cli` is a command line tool running on the [Arduino UNO Q](https://docs.arduino.cc/hardware/uno-q/) boards, that manages and runs Arduino Apps (both Linux and microcontroller parts), provides a HTTP daemon mode to expose RestFul APIs, and auto-updates itself and other components. | ||
|
|
||
| - manages and runs Arduino Apps on the board (both Linux and microcontroller parts) | ||
| - provides multiple APIs to perform actions and fetch data, used by the front-end (ArduinoAppsLab) | ||
| - auto-updates itself and other components | ||
| [](https://github.com/arduino/arduino-app-cli/actions/workflows/go-test.yml) | ||
|
|
||
| ## Environment Variables | ||
| ## Docs | ||
|
|
||
| The following environment variables are used to configure `arduino-app-cli`: | ||
| For guidance on installation and development, see the [User documentation]. | ||
|
|
||
| ### Application Directories | ||
| ## Quickstart | ||
|
|
||
| - **`ARDUINO_APP_CLI__APPS_DIR`** Path to the directory where Arduino Apps created by the user are stored.\ | ||
| **Default:** `/home/arduino/ArduinoApps` | ||
| // TODO | ||
|
|
||
| - **`ARDUINO_APP_CLI__DATA_DIR`** Path to the directory where internal data is stored.\ | ||
| **Default:** `/home/arduino/.local/share/arduino-app-cli`\ | ||
| This folder contains: | ||
| - **`examples/`** default example Apps (_e.g._ `/home/arduino/.local/share/arduino-app-cli/examples`) | ||
| - **`assets/`** contains a subfolder for each asset version (_e.g._ `/home/arduino/.local/share/arduino-app-cli/assets/0.4.5`) | ||
| - Each asset folder includes: | ||
| - `bricks-list.yaml` | ||
| - `models-list.yaml` | ||
| - **other data** such as `properties.msgpack` containing variable values | ||
| ## How to contribute | ||
|
|
||
| - **`ARDUINO_APP_BRICKS__CUSTOM_MODEL_DIR`** Path to the directory where custom models are stored.\ | ||
| **Default:** `$HOME/.arduino-bricks/ei-models`\ | ||
| (_e.g._ `/home/arduino/.arduino-bricks/ei-models`) | ||
| Contributions are welcome! | ||
|
|
||
| --- | ||
| Please read the [Contributor Guide] document, which will show you how to build the source code, run the tests, and | ||
| contribute your changes to the project. | ||
|
|
||
| ### Execution Settings | ||
| :sparkles: Thanks to all our [contributors]! :sparkles: | ||
|
|
||
| - **`ARDUINO_APP_CLI__ALLOW_ROOT`** Allow running `arduino-app-cli` as root.\ | ||
| **Default:** `false` **Not recommended to set to true.** | ||
| ## Security | ||
|
|
||
| --- | ||
| If you think you found a vulnerability or other security-related bug in the Arduino CLI, please read our [security | ||
| policy] and report the bug to our Security Team 🛡️ Thank you! | ||
|
|
||
| ### External Services | ||
| e-mail contact: security@arduino.cc | ||
|
|
||
| - **`LIBRARIES_API_URL`** URL of the external service used to search libraries.\ | ||
| **Default:** `https://api2.arduino.cc/libraries/v1/libraries` | ||
| ## License | ||
|
|
||
| --- | ||
| Arduino App CLI is licensed under the GPL-3.0 license. | ||
|
|
||
| ### Docker Settings | ||
| You can be released from the requirements of the above license by purchasing a commercial license. Buying such a license | ||
| is mandatory if you want to modify or otherwise use the software for commercial activities involving the Arduino | ||
| software without disclosing the source code of your own applications. To purchase a commercial license, send an email to | ||
| license@arduino.cc | ||
|
|
||
| - **`DOCKER_REGISTRY_BASE`** Docker registry used to pull images.\ | ||
| **Default:** `ghcr.io/arduino/` | ||
|
|
||
| - **`DOCKER_PYTHON_BASE_IMAGE`** Tag of the Docker image for the Python runner.\ | ||
| **Default:** `app-bricks/python-apps-base:<RUNNER_VERSION>` | ||
|
|
||
| ### App folder and persistent data | ||
|
|
||
| When running an app, persistent files will be saved in the `data` folder inside the app folder; other supporting files, including the Python venv are saved in the `.cache` folder inside the app folder. | ||
|
|
||
| ### Docker images registry | ||
|
|
||
| Arduino Apps bricks might required a docker image, in that case the orchestrator will pull those from the registry configured with the `DOCKER_REGISTRY_BASE` environment variable. By default this points to an Arduino GitHub Container Registry (ghcr.io/arduino). | ||
|
|
||
| The only image that needs to be referenced directly is the base Python image (`DOCKER_PYTHON_BASE_IMAGE`), all other containers can be downloaded automatically by the orchestrator depending on the bricks specified as dependencies in the app.yml file. | ||
| [user documentation]: https://github.com/arduino/arduino-app-cli/docs/user-documentation.md | ||
| [contributor guide]: https://arduino.github.io/arduino-app-cli/latest/CONTRIBUTING/ | ||
| [security policy]: https://github.com/arduino/arduino-app-cli/security/policy | ||
| [contributors]: https://github.com/arduino/arduino-app-cli/graphs/contributors |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| # Contributor Guide | ||
|
|
||
| Thanks for your interest in contributing to this project! | ||
|
|
||
| There are several ways you can get involved: | ||
|
|
||
| | Type of contribution | Contribution method | | ||
| | ----------------------------------------- | ----------------------------------------------- | | ||
| | - Support<br/>- Question<br/>- Discussion | Post on the [**Arduino Forum**][forum] | | ||
| | - Bug report<br/>- Feature request | Issue report (see the guide [**here**][issues]) | | ||
| | Testing | PR review (see the guide [**here**][prs]) | | ||
| | - Bug fix<br/>- Enhancement | Pull request (see the guide [**here**][prs]) | | ||
| | Monetary | [Buy official products][store] | | ||
|
|
||
| [forum]: https://forum.arduino.cc | ||
| [issues]: contributor-guide/issues.md#issue-report-guide | ||
| [beta-testing]: contributor-guide/beta-testing.md#beta-testing-guide | ||
| [prs]: contributor-guide/pull-requests.md#pull-request-guide | ||
| [store]: https://store.arduino.cc | ||
|
|
||
| ## Resources | ||
|
|
||
| - [**Development Guide**](development.md#development-guide) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| <!-- Source: https://github.com/arduino/tooling-project-assets/blob/main/documentation-templates/contributor-guide/other/development.md --> | ||
|
|
||
| # Development Guide | ||
|
|
||
| > [!NOTE] | ||
| > The `arduino-app-cli` is designed to run on the Board and access peripherals that are not available on a development PC (e.g., the microcontroller). | ||
| > | ||
| > For easier testing, using an **Arduino UNO Q** is recommended, as local testing is limited to functionalities that do not require board-specific features. | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| The following development tools must be available in your local environment: | ||
|
|
||
| - [Go](https://go.dev/dl/) | ||
| - [Task](https://taskfile.dev/) | ||
| - [adb client](https://developer.android.com/tools/adb) [optionally] | ||
|
|
||
| ## Building the Project | ||
|
|
||
| - `task init` | ||
| - `task build` | ||
| - `task generate:assets` to download locally the assets of the [Arduino Bricks](`https://github.com/arduino/app-bricks-py`) | ||
| - `ARDUINO_APP_CLI__DATA_DIR=debian/arduino-app-cli/home/arduino/.local/share/arduino-app-cli task start` to build and start the arduino-app-cli in daemon mode. | ||
|
|
||
| ## Running Checks | ||
|
|
||
| Checks and tests are set up to ensure the project content is functional and compliant with the established standards. | ||
|
|
||
| - `task fmt-check` | ||
dido18 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| - `task lint` | ||
| - `task test` | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Add a note that some tests don't work on Windows and macOS. In particular,
|
||
|
|
||
| ## Installing arduino-app-cli into the board | ||
|
|
||
| This is reccomended way to test a local development version of the arduino-app-cli into a board. | ||
|
|
||
| 1. Connect an [Arduino UNO Q](https://docs.arduino.cc/hardware/uno-q/) board via USB. | ||
| 1. `task board:install` installs the current version of Arduino App CLI on the board (`adb` is needed). The password of the `arduino` username of the board is requested. | ||
|
|
||
| ## Automatic Corrections | ||
|
|
||
| Tools are provided to automatically bring the project into compliance with some of the required checks. | ||
|
|
||
| - `task fmt` | ||
|
|
||
| ## Generate API docs | ||
|
|
||
| If a PR, change the HTTP API definitions, the following steps are needed: | ||
|
|
||
| 1. Open the `cmd/gendoc/docs.go` and modify/add/remove the definitions | ||
| 1. Run `task doc` to generate the docs (i.e., the files `internal/api/docs/openapi.yaml` and `internal/e2e/client/client.gen.go` are generated) | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| <!-- Source: https://github.com/arduino/tooling-project-assets/blob/main/documentation-templates/contributor-guide/general/contributor-guide/issues.md --> | ||
|
|
||
| # Issue Report Guide | ||
|
|
||
| --- | ||
|
|
||
| ❗ Do you need help or have a question about using this project? Support requests should be made to the [Arduino Forum](https://forum.arduino.cc). | ||
|
|
||
| --- | ||
|
|
||
| High quality bug reports and feature requests are valuable contributions to this project. These can be made by submitting an issue report to the project's GitHub repository: | ||
|
|
||
| https://github.com/arduino/arduino-app-cli/issues/new/choose | ||
|
|
||
| ## Before Reporting an Issue | ||
|
|
||
| - Give the latest development version t (pre-releases) a test drive to see if your issue was already resolved:<br /> | ||
| https://github.com/arduino/arduino-app-cli/releases?q=prerelease%3Atrue | ||
| - Search [existing pull requests and issues](https://github.com/arduino/arduino-app-cli/issues?q=) to see if it was already reported.<br /> | ||
| If you have additional information to provide about an existing issue, please comment there instead of creating a duplicate. You can use [GitHub's "Reactions" feature](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) if you only want to express support 👍. | ||
|
|
||
| ## Qualities of an Excellent Report | ||
|
|
||
| - Concise and descriptive issue title.<br /> | ||
| Vague titles make it difficult to decipher the purpose of the issue when looking through the list of reports, which might result in your issue not being given proper attention. | ||
| - Describe the issue and what behavior you were expecting.<br /> | ||
| Include the full and exact text of any relevant error or warning messages you might have encountered. | ||
| - Provide a full set of steps necessary to reproduce the issue.<br /> | ||
| Demonstration code or commands should be complete and simplified to the minimum necessary to reproduce the issue. | ||
| - Be responsive.<br /> | ||
| We may need you to provide additional information in order to investigate and resolve the issue.<br /> | ||
| Make sure your GitHub account is configured so that you will receive notifications of responses to your issue report. | ||
| - If you find a solution to your problem, please comment on your issue report with an explanation of how you were able to fix it, then close the issue. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You also need Docker to run most of the tests