Skip to main content

TUI (Terminal User Interface) of Yunetas

Project description

TUI for yunetas

This is the TUI (Terminal User Interface) for Yuneta Simplified

Icon

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

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__.py file and change the variable __version__. Then build and publish

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yunetas-0.11.0.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yunetas-0.11.0-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file yunetas-0.11.0.tar.gz.

File metadata

  • Download URL: yunetas-0.11.0.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.27.0 CPython/3.12.2 Linux/6.17.0-35-generic

File hashes

Hashes for yunetas-0.11.0.tar.gz
Algorithm Hash digest
SHA256 a8846d0e4125cdb8879c2677110b3e4d31d0e05ce7acf820a9f0be5ced3fd026
MD5 4f8c1863c987081e8fc9bf06cdb81c8f
BLAKE2b-256 744866f4cd0137105d095baa3baf3c76bb0eb9d7c8c50a1a91ca9a9d57677fd4

See more details on using hashes here.

File details

Details for the file yunetas-0.11.0-py3-none-any.whl.

File metadata

  • Download URL: yunetas-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 15.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.27.0 CPython/3.12.2 Linux/6.17.0-35-generic

File hashes

Hashes for yunetas-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 342ae83499f995b61563662485d6a5b9b4e39319ab5ff58fe0be2d39b9d3315a
MD5 06ef9f39b0851cb88970320e74e38e32
BLAKE2b-256 95dd142c1c1566ce22ffd1c1aba78c6d6c801fa0a0428f449f2cc106e7450e92

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page