Your first feature deployment#
Preview and enable real PyPI support using a temporary conda configuration file, inspect the resulting state, then disable it to restore the settings it changed. You will not install a package from PyPI or modify shell startup files.
First install the plugin and its deployment providers into the conda installation you want to use. You do not need the source checkout or a development environment. Commands below use that installation’s conda. If necessary, substitute its host interpreter’s python -m conda.
The examples use a POSIX shell. On PowerShell, create a temporary directory with New-Item, assign its path to $demo, and use Join-Path $demo demo.yaml wherever the examples use "$demo/demo.yaml".
1. Choose a configuration file#
Create a temporary file with explicit starting settings:
demo=$(mktemp -d) || exit 1
printf 'solver: libmamba\nchannels: [conda-forge]\n' > "$demo/demo.yaml"
Keep using this same file for every command. Deployment receipts are stored beside it. --file selects a standalone configuration file plus environment-variable overrides. It does not isolate package installation or shell files. If PyPI prerequisites are missing, enable proposes installing them into the conda host. They remain installed after disable. Only continue if you are willing to make those package changes after reviewing the preview.
If you have conda environment variables that override the solver or channels, the preview may refuse the change. Use a fresh shell without those overrides rather than changing your normal configuration to make the tutorial pass.
2. Discover the feature#
conda feature list --file "$demo/demo.yaml"
conda feature explain conda-pypi --file "$demo/demo.yaml"
The catalog contains conda-pypi and conda-completion. Listing the completion feature does not install a hook. For PyPI support, requested is initially unset: this file has no deployment receipt. Readiness lists the solver and channel setup still needed, along with any missing package prerequisites.
3. Preview the deployment#
conda feature enable conda-pypi \
--file "$demo/demo.yaml" --dry-run --json
The result describes setting solver to rattler, appending conda-pypi, and recording the feature choice. The configuration destination is your temporary file. If prerequisites are missing, a package step lists the packages and the host prefix where they will be installed. If replacing existing packages would be necessary, setup refuses and asks you to arrange compatible prerequisites separately.
Running enable again constructs and confirms a fresh plan, so this preview cannot be reused as an approval token. A missing-package preview can solve and update package caches, but it does not install packages or write managed configuration.
4. Apply and inspect#
conda feature enable conda-pypi \
--file "$demo/demo.yaml" --yes
conda feature explain conda-pypi \
--file "$demo/demo.yaml" --json
The file now selects Rattler and contains both channels. A file named demo.yaml.conda-pypi.json records the deployment’s ownership and completed steps.
The full command output includes these status fields:
{
"requested": "enabled",
"effective": "enabled",
"readiness": "ready",
"runtime": "unknown"
}
For a step-backed feature, effective reflects the step checks. runtime remains unknown because the plugin does not observe PyPI transaction execution.
Enable it once more:
conda feature enable conda-pypi \
--file "$demo/demo.yaml" --yes
With no intervening changes, the command reports that no changes are needed.
5. Disable and clean up#
conda feature disable conda-pypi \
--file "$demo/demo.yaml" --dry-run
conda feature disable conda-pypi \
--file "$demo/demo.yaml" --yes
Disable restores solver: libmamba, removes the channel added by this feature, and removes the completed deployment receipt. It leaves prerequisite packages installed in the conda host. Existing channels and unrelated settings remain.
After checking the result, remove the temporary tutorial directory:
rm -r -- "$demo"
unset demo
Do not delete a real deployment receipt as a substitute for disabling a feature. Its recovery information may be needed to remove resources safely.
Continue with real provider deployment to use your own target environment, or build your first provider to expose your own optional behavior.