Skip to main content

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)
list List available native CLI versions on Conan remotes
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 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 install --linkage shared   # thin shared esysrepo-cli + DLLs/.so
esysrepo-ctl install --channel center   # unnamed Conan Center-style refs
esysrepo-ctl list --dev                 # develop ships on @libesys/testing
esysrepo-ctl list
esysrepo-ctl list --linkage shared
esysrepo-ctl list --all-linkages
esysrepo-ctl update
esysrepo-ctl remove

Native CLI package (ADR-0009)

Installs pick one Conan application name. Wrappers stay esysrepo / erepo.

Linkage How Package
static (default) --linkage static or unset esysrepo-cli-static
shared --linkage shared or ESYSREPO_CTL_CLI_LINKAGE=shared esysrepo-cli

Until esysrepo-cli-static exists on Artifactory for that version/os/arch, the default install fails (hint: --linkage shared or wait for the static-exe Conan ship). ctl does not fall back to shared. Switching linkage can leave the other package in the Conan cache until you remove it with the same --linkage.

Conan channel (ADR-0007)

By default, package refs use LibESys Artifactory identity:

esysrepo-cli-static/<version>@libesys/stable

Mode How Package ref shape
libesys (default) --channel libesys or unset …@libesys/stable
testing --dev or --channel testing …@libesys/testing (develop *-dev.<iid>)
center --channel center or ESYSREPO_CTL_CHANNEL=center unnamed (<pkg>/<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 / list / remove / doctor never trigger implicit native CLI install. version / update may auto-bootstrap when allowed.

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

Metadata

Release files for esysrepo-ctl 0.3.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for esysrepo-ctl 0.3.5
File Size Uploaded
esysrepo_ctl-0.3.5.tar.gz 55.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for esysrepo-ctl 0.3.5
File Interpreter ABI Platform
esysrepo_ctl-0.3.5-py3-none-any.whl Python 3 none any Details

Total release size: 102.8 kB

Release files / esysrepo_ctl-0.3.5.tar.gz

Download URL esysrepo_ctl-0.3.5.tar.gz
Size 55.8 kB
Tags Source
SHA-256 checksum
How to use checksums
daf7ab3687811699b0556611084bcd888b93712f80d9515414014198626afcd6
BLAKE2b-256 checksum
How to use checksums
6bacc2f7a0e679decf087e0830316b8eb24eec4ef227fff98a9008c2c2bd33d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Release files / esysrepo_ctl-0.3.5-py3-none-any.whl

Download URL esysrepo_ctl-0.3.5-py3-none-any.whl
Size 47.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2c9e17181422c0880247037801e0a6036f38505d52869a61d29da8fcefcdf50d
BLAKE2b-256 checksum
How to use checksums
9200d4d00f9f34a47443fc0367e605c3820524e0e3a33bcb5b3aeb371b7b1e9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Release history Release notifications | RSS feed

This release

0.3.5 This release

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page