Skip to main content

Control-plane tool for managing the native esysrepo CLI

Project description

esysrepo-ctl

Control-plane tool for installing, updating, diagnosing, and managing the native esysrepo CLI (distributed via Conan). Distributed as a Python package on PyPI.

Native repository operations use esysrepo / erepo (from the Conan package). This tool only manages the lifecycle of that native CLI.

Install

pipx install esysrepo-ctl

Or from a development checkout:

python -m pip install -e ".[dev]"

Both esysrepo-ctl and erepo-ctl are equivalent entry points.

Then install the native CLI (first run bootstraps a Python env + Conan 2 per ADR-0008):

# Interactive: detect mode, confirm, persist
esysrepo-ctl install

# Non-interactive installer-like (managed home venv + always-on wrappers)
esysrepo-ctl install --mode managed --yes

# Project-private: activate your venv first, then:
esysrepo-ctl install --mode project --yes
Mode Conan lives in Native esysrepo / erepo wrappers
project Active project venv That venv’s bin / Scripts (while activated)
pipx Managed home venv Managed …/esysrepo-ctl/bin
managed Managed home venv Managed …/esysrepo-ctl/bin

Overrides: ESYSREPO_CTL_MODE, ESYSREPO_CTL_YES=1, --reconfigure (ignore persisted mode). Choice is persisted under ESYSREPO_CTL_HOME / platform data dir (config.json).

Commands

Command Purpose
install Install the native esysrepo CLI via Conan
update Update the native CLI (auto-bootstraps when allowed)
remove Remove the native CLI from the Conan cache
doctor Diagnose environment, PATH, and compatibility
version Print control-plane and native CLI versions
esysrepo-ctl --help
esysrepo-ctl version
esysrepo-ctl doctor
esysrepo-ctl install
esysrepo-ctl install --mode managed --yes
esysrepo-ctl install --mode project --yes --reconfigure
esysrepo-ctl install --version 0.2.4
esysrepo-ctl --channel center install   # unnamed Conan Center-style refs
esysrepo-ctl update
esysrepo-ctl remove

Conan channel (ADR-0007)

By default, package refs use LibESys Artifactory identity:

esysrepo-cli/<version>@libesys/stable

Mode How Package ref shape
libesys (default) --channel libesys or unset …@libesys/stable
center --channel center or ESYSREPO_CTL_CHANNEL=center unnamed (esysrepo-cli/<ver>)

Configure the LibESys Conan remote yourself (or via CI vars CONAN_REMOTE_URL / CONAN_LOGIN_USERNAME / CONAN_PASSWORD). Install writes VirtualBuildEnv + VirtualRunEnv under the managed data dir and places wrappers per mode (above); doctor / discovery look at PATH, project Scripts/bin, and the managed bin.

Strict mode / no auto-bootstrap

By default, eligible commands (currently update) may auto-install the native CLI when it is missing (ADR-0005). Disable that with:

esysrepo-ctl --no-bootstrap update
# or
esysrepo-ctl --strict update

Auto-bootstrap is also disabled when any of these are set:

  • CI=true (typical CI environments)
  • ESYSREPO_CTL_NO_BOOTSTRAP=1
  • ESYSREPO_CTL_STRICT=1

Explicit install / remove / doctor / version never trigger implicit install.

Exit codes

Stable codes for scripting (ADR-0006):

Code Meaning
0 Success
1 General error
2 Usage error (bad arguments / unknown command)
3 Native esysrepo / erepo missing
4 Auto-bootstrap failure
5 Conan failure
6 Environment / compatibility error

Errors print to stderr as error: … with optional hint: … remediation lines.

Troubleshooting

Symptom What to try
doctor reports Conan missing Install Conan 2 and ensure conan is on PATH (or re-run esysrepo-ctl install --mode … --yes so ctl bootstraps Conan into the chosen venv)
doctor reports esysrepo missing esysrepo-ctl install then re-check doctor / version
Install/update fails talking to remotes conan remote list, fix auth/network, retry
Package installed but CLI not found Check managed bin (esysrepo-ctl doctor) and Conan remotes
Wrong package identity / not found Use default --channel libesys for Artifactory; ensure remote is configured
CI must not mutate the environment Use --no-bootstrap or rely on CI=true
where esysrepo lists ~/.conan2/…/bin before the venv wrapper Shell PATH is polluted (Conan cache bins first), so Windows never runs the .bat. cmd.exe: set "PATH=%VIRTUAL_ENV%\\Scripts;%PATH%" then where esysrepo — or call "%VIRTUAL_ENV%\\Scripts\\_esysrepo_ctl_fix_path.bat". PowerShell: $env:PATH = (@("$env:VIRTUAL_ENV\\Scripts") + ($env:PATH -split ';' | ? { $_ -notmatch '\\.conan2' })) -join ';'. Or deactivate/reactivate the venv after esysrepo-ctl install --mode project --yes.
esysrepo-ctl doctor
esysrepo-ctl version

Documentation

Development

python scripts/setup-dev.sh   # or scripts/setup-dev.ps1 on Windows
pytest
pre-commit run --all-files

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

esysrepo_ctl-0.2.0.tar.gz (38.0 kB view details)

Uploaded Source

Built Distribution

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

esysrepo_ctl-0.2.0-py3-none-any.whl (34.4 kB view details)

Uploaded Python 3

File details

Details for the file esysrepo_ctl-0.2.0.tar.gz.

File metadata

  • Download URL: esysrepo_ctl-0.2.0.tar.gz
  • Upload date:
  • Size: 38.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for esysrepo_ctl-0.2.0.tar.gz
Algorithm Hash digest
SHA256 29130f0f651e9f2f2d94e4a21f56490029e5f7764605ada570db371433052ec4
MD5 338dd5e14b2e93e9b6cbd2871e5d9834
BLAKE2b-256 ad52bf63f17477533d24fd7bd12a6430e375e3cd0dbc840e2cd00a8c7686b163

See more details on using hashes here.

File details

Details for the file esysrepo_ctl-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: esysrepo_ctl-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 34.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for esysrepo_ctl-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 608f1b5ef7c078d44abf1e7b578368ac11e907d74903f9cd06f7ee10687ebf83
MD5 27434bcc7aadd496728824854bf201a7
BLAKE2b-256 1ac2356d7c3666fe6d35035f8e4f5afb7caa80abcbdebc16db0ce5af0052bfba

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