-
Notifications
You must be signed in to change notification settings - Fork 175
Closed
Labels
pending::discussioncontains some ongoing discussion that needs to be resolved prior to proceedingcontains some ongoing discussion that needs to be resolved prior to proceedingstale[bot] marked as stale due to inactivity[bot] marked as stale due to inactivitystale::recovered[bot] recovered after being marked as stale[bot] recovered after being marked as stale
Description
constructor relies on a frozen version of conda named conda-standalone. conda-standalone is built off two feedstocks:
- https://github.com/conda-forge/conda-standalone-feedstock
- https://github.com/AnacondaRecipes/conda-standalone-feedstock
We will be syncing both to conda/conda-standalone soon.
conda-standalone is not just a frozen conda. It contains some modifications:
Patches:
noarchentry-points compatibility for Windows:Scripts/conda.exewon't be available in the PyInstaller executable, so we add it ourselves from the conda sources (conda/shell/cli-$ARCH.exe)- Do not conda-activate the wrapped subprocess for Windows; just modify the PATH as needed.
Modified CLI:
- The frozen conda.exe contains a hook to detect whether the CLI is using a
constructorsubcommand (e.g.conda constructor...) and redirects those calls to a bundled_nsis.pyfile.
_nsis.py comes from constructor! It's a helper script to aid Windows installers with some steps, like menu items creation.
Windows' NSIS installers end up using _nsis.py in two different ways:
- Directly, via the bundled Python. This is the reason why
pythonis ALWAYS added to the list of packages in the installer. - Through conda-standalone's
constructorentry point.
The thing is that conda-standalone already features a FULL Python installation inside the frozen executable, so there's no need to force feed Python into the installer again.
My plan is to:
- Move the
_nsis.py(and dependents) toconda/conda-standalone - Replace the direct calls to
_nsis.pywith equivalent functionality throughconda-standalone - Do not require Python in the
baseenvironment anymore, but leaveconda.exein the installation, because it will be needed at uninstall time. - (At some point) Package the
constructorhelpers inconda-standaloneas a conda plugin, so buildingconda-standaloneis less hacky
Thoughts, @conda/constructor?
cc @wolfv - since this might affect the micromamba integrations.
goanpeca, jezdez and FaustinCarter
Metadata
Metadata
Assignees
Labels
pending::discussioncontains some ongoing discussion that needs to be resolved prior to proceedingcontains some ongoing discussion that needs to be resolved prior to proceedingstale[bot] marked as stale due to inactivity[bot] marked as stale due to inactivitystale::recovered[bot] recovered after being marked as stale[bot] recovered after being marked as stale