# Conda Plugins News Bulletin, Q4 '22 Edition *(updated week of Nov 14 2022)* ## Current state of the world - **Plugins infrastructure** has merged 🎉 - **Subcommand plugins** are possible to develop and use w/ conda - **Virtual packages** are implemented via plugins officially - [Subcommand **tutorial repo**](https://github.com/conda/conda-plugin-template) is ready (including non-Python examples) - The [**`libmamba` solver hook + plugin**](https://github.com/conda/conda/pull/11993) have been merged! - We have a [**dedicated tab for plugins**](https://github.com/orgs/conda/projects/2/views/25) on our Planning Board - [Finalization of **plugins documentation**](https://github.com/conda/conda/pull/12088) (merged!) ## Upcoming plans for plugins - **Release version `22.11.0`**, which will officially have plugins functionality - **Note:** Until the next conda release we will be gathering feedback about anything that's breaking, any issues users/contributors have, etc so that we can smooth those out before an upcoming Lunch & Learn and webinar - **Conda Contributions [APE](https://anaconda.atlassian.net/wiki/spaces/TEC/pages/2192506882/APEs)** - This APE is meant to cover the full lifecycle of contribution to the conda (and friends) codebase in order to help Anaconda employees and community members/potential contributors make sense of the Open Source techniques commonly utilized in the conda ecosystem ## Plans for bringing awareness to this initiative - Publish the **[accompanying blog post](https://docs.google.com/document/d/1xVZFvrKuU8L9RPmPUyIYkOHPlgmYLeXsG1ffpm2_vZI/edit#heading=h.9zvq46c59w68)** - **Company-wide Lunch & Learn** to bring awareness to the plugins effort, teach how to develop conda plugins, as well as answer questions Anacondiacs might have about this project - This L&L will ideally be accompanied by the **Conda Contributions APE**, though that may not be written/approved in time. - External-facing **webinar about plugins**. Topics to cover will include: - **Webinar Pt I** - What are conda plugins? - Why did we implement them - How do they work? - What plugins are there so far? - **Webinar Pt II** - How can you develop your own plugins? - How can you use those plugins that you make? - How can you distribute them? - What possibilities exist for future plugins? - Non-Python plugins are possible! - Hopefully there will be an official way to distribute plugins that's been implemented (an official channel? conda.org?) so that we can point people to the proper place to distribute their work - Bianca plans to submit a CFP for a **conda plugin-focused PyCon US talk** ## Plugins "to-do" list - [ ] Ensure that engineering teams at Anaconda know how to "get planes in the air" and how to communicate what plugins they are working on **Idea:** Could post a section on the [Technology page on Confluence](https://anaconda.atlassian.net/wiki/spaces/TEC/overview) and enable teams to fill out ideas + statuses (is something being worked on, etc?)! (this would take care of the above "to do" item as well as the next two) - [ ] Make sure that someone is able to know/find info on what plugins are being worked in order to be able to not overlap (only for Anaconda specific plugins, assuming this would be different for the pure open source side) - [ ] Facilitate a way to make plugins work visible to non-tech teams in Anaconda - [ ] Figure out how a plugin can be discovered, downloaded/used, and published The plan is to eventually have a “[conda plugin index](https://github.com/conda/conda/issues/11786)” hosted under the upcoming `conda.org` website, where users can explore and discover conda plugins. Since conda plugins will be distributed as regular conda/Python packages on `anaconda.org`, the regular `conda install` command will be the main UI for installation of conda plugins. Conda plugins *may* be published on PyPI instead, if the authors decide to. - [ ] Once the above is figured out, have the index be integrated into a conda subcommand (`conda plugins`?) to allow users to enable, search and list plugins from their CLI. - [ ] Figure out verification system for plugins (the ones that Anaconda hosts as conda packages) *Question:* Are there other teams at Anaconda that have done something similar to plugins work that we could look to for possible guidance? ## Possible worries/concerns * *Before something like a Lunch & Learn happens, various engineering teams within Anaconda might "take the plugins work and run", which might cause mass chaos and too many plugins being developed without any guidance.* Without an official distribution channel or repository, this will basically follow the open source way of things (people will take new features and experiment with/break them), which is ok, and a sign that there is massive interest in this initiative. In fact, having internal teams "hack" on things is ideal since there will most likely be more specific and targeted questions brought up during an internal Anaconda presentation. It will also be sort of like a "dress rehearsal" for when this truly opens up to the public (after an external-facing webinar, especially).