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.3

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.3
File Size Uploaded
esysrepo_ctl-0.3.3.tar.gz 52.0 kB Details

Built distribution (wheel)

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

Total release size: 98.2 kB

Release files / esysrepo_ctl-0.3.3.tar.gz

Download URL esysrepo_ctl-0.3.3.tar.gz
Size 52.0 kB
Tags Source
SHA-256 checksum
How to use checksums
bc7fbcd1c2ded54ac7df4d99d3a09473643d3b2288dc4c28f4f5c4ff9e71ed00
BLAKE2b-256 checksum
How to use checksums
677aa0d0ba6cb7f9b3560bf3baaf2aefbdfb3f3cad65d0becf9b70826d48f926
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.3-py3-none-any.whl

Download URL esysrepo_ctl-0.3.3-py3-none-any.whl
Size 46.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8a869613e9d11e301a1bdeec2273365529706ceb2ff9334a6f7bd00aad2f954a
BLAKE2b-256 checksum
How to use checksums
9519b5943ce1143b8eae958ec5c7b8dcfacb626a4cb25071551485098f236997
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

0.3.5

2 release files

0.3.4

2 release files

This release

0.3.3 This release

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