Skip to content

Deprecate or remove conda develop #4251

Open
@jjpr-mit

Description

@jjpr-mit

The conda develop command has been informally deprecated multiple times:

But it is still present in the code and in the documentation. That is very likely misleading to anyone trying to learn best practices for scientific computing.

Example scenario: As soon as a new scientific programmer gets comfortable enough with Python to start working on multiple projects, the next logical step is to learn how to manage environments and dependencies. They'll start by adding a setup.py with dependencies to each project, and most likely they'll start using conda to manage environments. (That's what I recommend to users of the servers I manage.) They'll create a conda environment, activate it, and then run pip install -e ., and the code from their project and all its dependencies will be available to anything they run in that environment. If they use Jupyter, they'll install that environment as a kernel.

And then, as development progresses, they'll add more stuff. They'll conda install more packages. And now they have a problem: as described in the current documentation, it's dangerous to interleave conda install and pip install. Inevitably they'll end up with an environment that's inconsistent, un-upgradeable and unusable.

On their next project, they'll try to avoid that problem. The logical solution is to use whatever is the equivalent of pip install -e in conda. Which will lead them to conda develop, which looks like the solution to their problem. They will then waste a day or more trying to get conda develop to work, eventually stumbling across #1992 or #2633. And then they will curse the name of the person who exhorted them to use conda and follow best practices. Which in several cases has been me.

Please deprecate or remove conda develop.

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlogissue has been triaged but has not been earmarked for any upcoming releasehelp-wantedwe don't know the solution or we especially want a community member to contribute the code changeseverity::2critical; broken functionality with an unacceptably complex workaroundsource::communitycatch-all for issues filed by community memberstype::featurerequest for a new feature or capabilitytype::tech-debtidentifies or resolves some technical debt

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions