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

napari-installation-manager prototype #10

Closed
14 tasks
jaimergp opened this issue Aug 3, 2022 · 8 comments
Closed
14 tasks

napari-installation-manager prototype #10

jaimergp opened this issue Aug 3, 2022 · 8 comments
Assignees

Comments

@jaimergp
Copy link
Collaborator

jaimergp commented Aug 3, 2022

The installation-manager development plan is divided in three phases that will be rolled out sequentially. It's designed as an application-agnostic tool that can be customized to support the napari use case.

  1. CLI-only utility that resides in the base environment and implements update checks, new environment creation and some maintenance tasks (remove old envs, recreate envs for a version). At this point, standalone usage of the tool is only for recovery tasks and experts.
  2. Add some UI on top so it's more user friendly, making this tool more known to regular users.
  3. (hypothetical) Installers only download a feature-complete napari-installation-manager, which defaults to installing latest napari. Users are aware of this tool before even launching napari.

Phase 1: CLI-only

Tool 1: constructor-updater (backend)

Python application and CLI tool to be installed in base environment.

  • Basic project scaffold
  • Environment discovery logic
  • Check for updates logic
  • Update and install process
  • Handle plugins across updates
  • Environment restore logic
  • Implement package locking

Tool 2: constructor-updater (frontend)

Python application providing API to be used by napari (and other tools). Communicate with the constructor-updater backend. To be installed in the application environment.

  • Basic project scaffold
  • Check for application updates
  • Run update and install
  • Check for current status of backend processes (update in progress, issues)
  • Other actions: Restore / Remove / Clean

Phase 2: Light UI

(moved to installation manager frontend story)

Phase 3: Full-fledged application

  • Create / clone custom napari environments
  • More TBD
@goanpeca
Copy link
Collaborator

goanpeca commented Aug 17, 2022

Working on Phase 1)

New package for the backend (constructor-installation-manager). This is a generic package with no direct knowledge of napari. By doing it this way other tools in the ecosystem using constructor will benefit from updates-in-place :). PRs will be pushed next week after doing some cleaning.

Also this packages for now is pure python only to keep the base environment simple.

@goanpeca goanpeca self-assigned this Aug 19, 2022
@liu-ziyang
Copy link
Contributor

curious where we are on the prototype. Are we still on track to releasing the package after switching to a unified approach between installation and plugin manager?

@goanpeca
Copy link
Collaborator

goanpeca commented Sep 7, 2022

Hi @potating-potato still working on this, I should be finishing this week, with a bit of next one. I can start working on the UI with @ppwadhwa next week.

@liu-ziyang
Copy link
Contributor

@jaimergp, since Gonzalo is out, is there anything you can help with here? I am ok if we have to trade off plugin migration work and other things

@jaimergp
Copy link
Collaborator Author

Sure I can move my priorities around, but I don't have access to what Gonzalo has done so far. Is it worth it to start from scratch?

@liu-ziyang
Copy link
Contributor

oh noo... by any chance can you ask him to push what he has so far? if we can't reach him then I would say it is not worth it starting from scratch

@goanpeca
Copy link
Collaborator

goanpeca commented Oct 5, 2022

Sorry for the delay, added the PR here #34

Updating tests today!

@liu-ziyang
Copy link
Contributor

I am going to close this story in favor of the other split stories in the project board

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

3 participants