Velocitas CLI
Background
Our Velocitas CLI is introduced to support the process of the lifecycle of a Vehicle App as a project manager.
Commands
You can find all information about available commands here .
CLI Flow examples
velocitas create
Create a new Velocitas Vehicle App project.
Note
velocitas create
needs to be executed inside our generic
vehicle-app-template (inside the devcontainer) where a so called
package-index.json
is located for now, which is a central place of defining our extension and core packages with their respective exposed interfaces.
vscode ➜ /workspaces/vehicle-app-template (main) $ velocitas create
Interactive project creation started
> What is the name of your project? MyApp
> Which programming language would you like to use for your project? (Use arrow keys)
❯ python
cpp
> Would you like to use a provided example? No
> Which functional interfaces does your application have? (Press <space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
❯◉ Vehicle Signal Interface based on VSS and KUKSA Databroker
◯ gRPC service contract based on a proto interface description
...
Config 'src' for interface 'vehicle-signal-interface': URI or path to VSS json (Leave empty for default: v3.0)
...
velocitas init
Download packages configured in your .velocitas.json
to
VELOCITAS_HOME
vscode ➜ /workspaces/vehicle-app-python-template (main) $ velocitas init
Initializing Velocitas packages ...
... Downloading package: 'devenv-runtimes:v1.0.1'
... Downloading package: 'devenv-github-workflows:v2.0.4'
... Downloading package: 'devenv-github-templates:v1.0.1'
... Downloading package: 'devenv-devcontainer-setup:v1.1.7'
Running post init hook for model-generator
Running 'install-deps'
...
Single Package Init
Single packages can also easily be initialized or re-initialized using the package parameter -p / --package
and the specifier parameter -s / --specifier
. The specifier parameter can be either a git tag or a git hash. If the specifier parameter is omitted either the version defined in .velocitas.json
resp. the latest version of the specified package will be used automatically. After initialisation the package and it’s resolved version will be written to .velocitas.json
. If the package already exists in .velocitas.json
, however the versions differ it will be automatically updated to the specified version. If no components from the specified package are added to .velocitas.json
all components from this package are automatically written to it.
vscode ➜ /workspaces/vehicle-app-python-template (main) $ velocitas init -p devenv-runtimes -s v3.0.0
Initializing Velocitas packages ...
... Package 'devenv-runtimes:v3.0.0' added to .velocitas.json
... Downloading package: 'devenv-runtimes:v3.0.0'
... > Running post init hook for ...
...
velocitas sync
If any package provides files they will be synchronized into your repository.
Note
This will overwrite any changes you have made to the files manually! Affected files are prefixed with an auto generated notice:vscode ➜ /workspaces/vehicle-app-python-template (main) $ velocitas sync
Syncing Velocitas components!
... syncing 'devenv-github-workflows'
... syncing 'devenv-github-templates'
... syncing 'devenv-devcontainer-setup'
velocitas upgrade
Updates Velocitas components.
vscode ➜ /workspaces/vehicle-app-python-template (main) $ velocitas upgrade --dry-run [--ignore-bounds]
Checking .velocitas.json for updates!
... devenv-devcontainer-setup:vx.x.x → up to date!
... devenv-runtimes:vx.x.x → vx.x.x
... devenv-github-templates:vx.x.x → up to date!
... devenv-github-workflows:vx.x.x → up to date!
velocitas package
Prints information about packages.
vscode ➜ /workspaces/vehicle-app-python-template (main) $ velocitas package devenv-devcontainer-setup
devenv-devcontainer-setup
version: v1.1.7
components:
- id: devcontainer-setup
type: setup
variables:
language
type: string
description: The programming language of the project. Either 'python' or 'cpp'
required: true
repoType
type: string
description: The type of the repository: 'app' or 'sdk'
required: true
appManifestPath
type: string
description: Path of the AppManifest file, relative to the .velocitas.json
required: true
vscode ➜ /workspaces/vehicle-app-python-template (main) $ velocitas package devenv-devcontainer-setup -p
/home/vscode/.velocitas/packages/devenv-devcontainer-setup/v1.1.7
velocitas exec
Executes a script contained in one of your installed components.
vscode ➜ /workspaces/vehicle-app-python-template (main) $ velocitas exec runtime-local run-vehicledatabroker
#######################################################
### Running Databroker ###
#######################################################
...
More detailed usage can be found at the Velocitas CLI README .
Additional Information
Cache Usage
The Velocitas CLI supports caching data for a Vehicle App project.
The cache data makes it easy for any script/program of a component to read from or write to.
More detailed information about the Project Cache can be found
here
.
Built-In Variables
The Velocitas CLI also creates default environment variables which are available to every script/program.
variable | description |
---|---|
VELOCITAS_WORKSPACE_DIR |
Current working directory of the Vehicle App |
VELOCITAS_CACHE_DIR |
Vehicle App project specific cache directory. e.g, ~/.velocitas/cache/<generatedMd5Hash> |
VELOCITAS_CACHE_DATA |
JSON string of ~/.velocitas/cache/<generatedMd5Hash>/cache.json |
VELOCITAS_APP_MANIFEST |
JSON string of the Vehicle App AppManifest |
More detailed information about Built-In Variables can be found here .
Next steps
- Lifecycle Management: Troubleshooting