Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Undoing constructor / conda-standalone cross "bundling" #549

Open
jaimergp opened this issue Aug 15, 2022 · 3 comments
Open

RFC: Undoing constructor / conda-standalone cross "bundling" #549

jaimergp opened this issue Aug 15, 2022 · 3 comments
Labels
pending::discussion contains some ongoing discussion that needs to be resolved prior to proceeding stale::recovered [bot] recovered after being marked as stale stale [bot] marked as stale due to inactivity

Comments

@jaimergp
Copy link
Contributor

constructor relies on a frozen version of conda named conda-standalone. conda-standalone is built off two feedstocks:

We will be syncing both to conda/conda-standalone soon.

conda-standalone is not just a frozen conda. It contains some modifications:

Patches:

  • noarch entry-points compatibility for Windows: Scripts/conda.exe won'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 constructor subcommand (e.g. conda constructor...) and redirects those calls to a bundled _nsis.py file.


_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:

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:

  1. Move the _nsis.py (and dependents) to conda/conda-standalone
  2. Replace the direct calls to _nsis.py with equivalent functionality through conda-standalone
  3. Do not require Python in the base environment anymore, but leave conda.exe in the installation, because it will be needed at uninstall time.
  4. (At some point) Package the constructor helpers in conda-standalone as a conda plugin, so building conda-standalone is less hacky

Thoughts, @conda/constructor?

cc @wolfv - since this might affect the micromamba integrations.

@jaimergp jaimergp added the pending::discussion contains some ongoing discussion that needs to be resolved prior to proceeding label Aug 15, 2022
@jezdez
Copy link
Member

jezdez commented Aug 30, 2022

Nice, this sounds like a great plan and should make things much more obvious.

@github-actions
Copy link

Hi there, thank you for your contribution!

This issue has been automatically marked as stale because it has not had recent activity. It will be closed automatically if no further activity occurs.

If you would like this issue to remain open please:

  1. Verify that you can still reproduce the issue at hand
  2. Comment that the issue is still reproducible and include:
    - What OS and version you reproduced the issue on
    - What steps you followed to reproduce the issue

NOTE: If this issue was closed prematurely, please leave a comment.

Thanks!

@github-actions github-actions bot added the stale [bot] marked as stale due to inactivity label Aug 31, 2023
@jaimergp
Copy link
Contributor Author

Still ongoing!

@jaimergp jaimergp added the stale::recovered [bot] recovered after being marked as stale label Aug 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pending::discussion contains some ongoing discussion that needs to be resolved prior to proceeding stale::recovered [bot] recovered after being marked as stale stale [bot] marked as stale due to inactivity
Projects
Status: No status
Development

No branches or pull requests

2 participants