TUI (Terminal User Interface) of Yunetas
Project description
TUI for yunetas
This is the TUI (Terminal User Interface) for Yuneta Simplified
Yuneta Simplified is a development framework about messages and services, based on Event-driven, Automata-based and Object-oriented programming.
Yuneta is based in functions, but it manages a system of virtual classes defined by programmatically and schematically.
All his philosophy is based on that virtual classes (namely GClass or class G).
All architecture done by configuration, based in schema, easy to see by human eye. Of course, you have an API functions to change configuration and data in real time.
For Linux and RTOS/ESP32.
Versions in C, Javascript and (TODO) Python.
For more details, see doc.yuneta.io
Commands
yunetas init # create build dirs, compiler/build-type from .config (menuconfig)
yunetas build # make install: SDK + registered projects
yunetas clean # make clean: SDK + registered projects
yunetas test # ctest
# External projects (registry in ~/.yuneta/projects.json, machine-local)
yunetas register-project <path> # <path> must contain yunos/CMakeLists.txt
yunetas unregister-project <name>
yunetas list-projects
yunetas init|build|clean <name>... # only those projects (SDK skipped)
yunetas init|build|clean --sdk-only # only the SDK
# Deploy helpers (wrappers over $YUNETAS_BASE/tools/agent/sync_*.py)
yunetas sync [-n|-a|...] # binaries AND configs together (recommended)
yunetas sync-binaries [-n|-a|...] # outputs/yunos vs the local agent
yunetas sync-configs [-n|-a|-r|...] # auto-match batches/<host>/ to the agent's realm_ids
yunetas sync-configs --host <host> [...] # or target one batches dir explicitly
yunetas upgrade-yunos [--no-snap|--snap-name N|-y|-n] # snapshot -> find-new-yunos -> deactivate-snap
On a runtime-only node (installed from the .deb/.rpm: outputs/,
outputs_ext/, tools/ and .config, but no framework sources and no
YUNETA_VERSION) there is no SDK to build, so init/build/clean with no
arguments process the registered projects only — naming them is optional.
--sdk-only is an error there.
Deploy flow
Two steps: push the artifacts, then promote them.
# 1. Push binaries AND configs in one go (so a binary bump never ships
# without its matching config bump — the verify-by-default footgun:
# a new fail-closed runtime against a stale no-CA config breaks OIDC).
yunetas sync # = sync-binaries + sync-configs
# 2. Promote the freshly installed releases to primary and restart.
yunetas upgrade-yunos # snapshot -> find-new-yunos (confirm) -> deactivate-snap
sync does not restart anything by itself; upgrade-yunos is the promote
step. It shoots a rollback snapshot first (idempotent by name; reuses an
already-active snap instead of stacking a new one; --no-snap to skip), then
previews find-new-yunos and asks before create=1, then deactivate-snap
triggers restart_nodes() on the agent. Preview either step with -n.
For a same-version hot-patch (no APP_VERSION bump) you don't need
upgrade-yunos: sync then bounce the affected yunos (kill-yuno +
run-yuno / play-yuno).
How build this package
Install pdm
This package use pdm to build and publish.
pip install pdm
pip install cement
pip install plumbum
pip install fastapi
pip install "uvicorn[standard]"
pip install "typer[all]"
Build and publish
# Firstly change the version (explained below)
# Next go to source root folder
pdm build
pdm publish --username __token__ --password <your-api-token> # (me: the full command is saved in publish-tui_yunetas.sh)
Install the package in editable mode using pip from the source root folder:
pip install -e .
Change the version
Edit the
__version__.pyfile and change the variable__version__. Then build and publish
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yunetas-0.18.0.tar.gz.
File metadata
- Download URL: yunetas-0.18.0.tar.gz
- Upload date:
- Size: 52.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.28.0 CPython/3.12.2 Linux/7.0.0-28-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f28244efa3ca1b7d7db549bdd197b02daa6213734712371cad40ed2353d3d0e3
|
|
| MD5 |
83d5bc815878957f9dc44527e134b461
|
|
| BLAKE2b-256 |
3b9566dcbfe23af29136de6c1e2e7cc8051b74a1bec18503aa78aec1fc5621c9
|
File details
Details for the file yunetas-0.18.0-py3-none-any.whl.
File metadata
- Download URL: yunetas-0.18.0-py3-none-any.whl
- Upload date:
- Size: 55.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.28.0 CPython/3.12.2 Linux/7.0.0-28-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
990246b6e227bd758c2460bd619b885d914072fb5cbc5f5f809c84fbee37ad1c
|
|
| MD5 |
938069b36cb090437fc0ab035e0526e6
|
|
| BLAKE2b-256 |
a1c1dbd444d2ca8c0c2722c108497e4c0827c1cf94cf63c16fc37f5759e4250d
|