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.1.tar.gz (40.6 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.1-py3-none-any.whl (36.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: esysrepo_ctl-0.2.1.tar.gz
  • Upload date:
  • Size: 40.6 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.1.tar.gz
Algorithm Hash digest
SHA256 afa5059cb0dd2a4ba4a519413bcaf753d603bfecd0880231ca22e38b4ca0d08d
MD5 f92be40147ed48db32fe171f8f0d8418
BLAKE2b-256 24f6941d4e9c8b8bd005c04d7cecc2a54dec3702e52590b19ea4db44abe1278d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: esysrepo_ctl-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 36.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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6a37802b7475058289e1bed7a4008d7cea776017eabf7d71dcf87f2e679cdd0d
MD5 dcb046f9b2a5cc6a375a881b0c7ea6d5
BLAKE2b-256 0e2ab6fcee50997a3d08e4c4301c564705403887abe94a0cf986f5eb52089a25

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