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

Make conda doctor pluggable #12854

Closed
2 tasks done
ForgottenProgramme opened this issue Jul 6, 2023 · 3 comments · Fixed by #13186
Closed
2 tasks done

Make conda doctor pluggable #12854

ForgottenProgramme opened this issue Jul 6, 2023 · 3 comments · Fixed by #13186
Assignees
Labels
in-progress issue is actively being worked on plugins pertains to a plugin/subcommand source::anaconda created by members of Anaconda, Inc. type::feature request for a new feature or capability

Comments

@ForgottenProgramme
Copy link
Contributor

ForgottenProgramme commented Jul 6, 2023

Checklist

  • I added a descriptive title
  • I searched open requests and couldn't find a duplicate

What is the idea?

Presently conda doctor is a subcommand plugin. The idea is to convert it into a plugin hook, so that users can write their own customized "health checks" (specific to their needs) and run them via conda doctor. This will allow users to create health checks for their unique cases.

  • Update (Nov 8, 2023)

    Per further brainstorming and discussions the following design decisions were made:
    • conda doctor remains a CondaSubcommand plugin.
    • A new plugin hook called CondaHealthCheck is created. All plugins created using this hook run everytime conda doctor is run.
    • All existing healthchecks shipped with conda doctor originally are now converted into seperateCondaHealthCheck plugins.

Why is this needed?

This is needed so that the conda engineers are no longer a bottleneck in the development of newer health checks and community innovation is encouraged.

What should happen?

conda doctor is converted into a plugin hook.

  • Update (Nov 8, 2023)

    • As described above, conda doctor should remain a CondaSubcommand plugin and a new plugin hook called CondaHealthCheck is to be created to make conda doctor pluggable.

Note:
I will be using the comment section here to note down my thoughts as I brainstorm ways to make this plugin to plugin-hook transition happen.

@ForgottenProgramme ForgottenProgramme added type::feature request for a new feature or capability plugins pertains to a plugin/subcommand source::anaconda created by members of Anaconda, Inc. labels Jul 6, 2023
@beeankha beeankha added the backlog issue has been triaged but has not been earmarked for any upcoming release label Jul 31, 2023
@ForgottenProgramme
Copy link
Contributor Author

ForgottenProgramme commented Oct 5, 2023

One way to go about this is to convert conda doctor into a project of its own in the conda-incubator repository.
The pros of this would be:

  1. As conda-doctor becomes a separate project, it becomes easy to maintain and to invite community contributions.
  2. All new health check plugins can live inside the conda doctor repo inside conda incubator.

But why would conda doctor be inside conda-incubator, which is a place for new projects that eventually mature and are moved to conda itself, when conda doctor was first developed inside conda itself? Maybe this point is not so important. I'm not sure.

@ForgottenProgramme
Copy link
Contributor Author

ForgottenProgramme commented Oct 5, 2023

The other option could be that conda doctor is converted to a plugin hook and it continues to live inside conda. A directory called health-check-plugins is created where all the existing conda-doctor health checks are placed. So now conda comes with the conda doctor plugin hook and a small set of health-checks.
We create a new project inside conda-incubator called conda-doctor-plugins, where community members can submit their health-checks plugins.
I like this idea better.

@travishathaway
Copy link
Contributor

@ForgottenProgramme,

I like the second idea you proposed (creating a health check plugin and keep conda doctor inside of conda). For the conda incubator project, we could consider calling it something like, "conda-doctor-extras" to imply that it's not part of the core health checks already bundled with conda.

@travishathaway travishathaway added in-progress issue is actively being worked on and removed backlog issue has been triaged but has not been earmarked for any upcoming release labels Oct 11, 2023
@ForgottenProgramme ForgottenProgramme changed the title Convert conda doctor into a plugin hook Make conda doctor pluggable Nov 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in-progress issue is actively being worked on plugins pertains to a plugin/subcommand source::anaconda created by members of Anaconda, Inc. type::feature request for a new feature or capability
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants