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

Added new FAQs and resolved 'content' labeled FAQs #137

Merged
merged 34 commits into from
Jun 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
99f09e4
Added new FAQs and resolved 'content' labeled FAQs
Pinak-Datta May 17, 2023
e83d55a
Implemented some of the phase 1 feedbacks on FAQs
Pinak-Datta May 22, 2023
0b2feba
Updated learn/faq.md
Pinak-Datta May 31, 2023
4c89fa6
Update learn/faq.md
Pinak-Datta May 31, 2023
f73979a
Update learn/faq.md
Pinak-Datta May 31, 2023
b52a5e0
Update learn/faq.md
Pinak-Datta May 31, 2023
02177d6
Update learn/faq.md
Pinak-Datta May 31, 2023
98c3f94
Update learn/faq.md
Pinak-Datta May 31, 2023
2be8851
Update learn/faq.md
Pinak-Datta May 31, 2023
09feb90
Update learn/faq.md
Pinak-Datta May 31, 2023
0b93f1e
Update learn/faq.md
Pinak-Datta May 31, 2023
d7dc416
Update learn/faq.md
Pinak-Datta May 31, 2023
13c7c69
Update learn/faq.md
Pinak-Datta May 31, 2023
a84dae2
Update learn/faq.md
Pinak-Datta May 31, 2023
1bd0470
Update learn/faq.md
Pinak-Datta May 31, 2023
87b8b4d
Updated learn/faq.md
Pinak-Datta May 31, 2023
2785982
Updated learn/faq.md
Pinak-Datta May 31, 2023
601e6ec
Update learn/faq.md
Pinak-Datta May 31, 2023
9f88d0d
Updated learn/faq.md
Pinak-Datta May 31, 2023
b609074
Updated learn/faq.md
Pinak-Datta May 31, 2023
37ab8d8
Updated learn/faq.md
Pinak-Datta May 31, 2023
1e75413
Updated learn/faq.md
Pinak-Datta May 31, 2023
71f47c4
Updated learn/faq.md
Pinak-Datta May 31, 2023
a5d8d34
Updated learn/faq.md
Pinak-Datta May 31, 2023
ba20d20
Merge branch 'conda-incubator:main' into added-new-faqs
Pinak-Datta May 31, 2023
7a9d6e2
Updated faq.md incorporating all the necessary feedbacks
Pinak-Datta Jun 3, 2023
b0e55bf
Applied formatting edits via GitHub's PR options
kathatherine Jun 3, 2023
2489a5b
Merge branch 'conda-incubator:main' into added-new-faqs
Pinak-Datta Jun 4, 2023
243d368
Revert "Merge branch 'conda-incubator:main' into added-new-faqs"
Pinak-Datta Jun 4, 2023
1e375f0
Merge branch 'main' into added-new-faqs
travishathaway Jun 8, 2023
9653ff4
undoing weird changes that occurred
travishathaway Jun 8, 2023
5cf4062
adding missing images
travishathaway Jun 8, 2023
d48457e
adding missing blog
travishathaway Jun 8, 2023
7f56998
fixing new file
travishathaway Jun 8, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion blog/news.json
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
[{"title": "Conda doctor: Detecting conda environment inconsistencies easily", "slug": "2023-06-01-conda-doctor", "description": "The new `conda doctor` command allows users to detect packages with missing files in their conda environments.\n", "authors": ["forgottenprogramme"], "tags": ["conda", "environments"], "image": "img/blog/2023-06-01-conda-doctor/stethoscope.jpg", "date": "2023-06-01T00:00:00"}, {"title": "May Releases for Conda, Conda-Build, and Conda-Libmamba-Solver", "slug": "2023-05-31-may-2023-releases", "description": "Conda 23.5.0, conda-build 3.25.0, and conda-libmamba-solver 23.5.0 have been released! \ud83c\udf89\n", "authors": ["beeankha"], "tags": ["announcement", "conda", "conda-build", "conda-libmamba-solver"], "image": null, "date": "2023-05-31T00:00:00"}, {"title": "How to use conda-build to build a Python package with C/C++ dependencies", "slug": "2023-05-18-how-to-use-conda-build", "authors": ["vasvi"], "tags": ["conda"], "image": null, "description": "We have created a blog to help you create your own Python package with Conda-build", "date": "2023-05-18T00:00:00"}, {"title": "How we reduced conda's index fetch bandwidth by 99%", "slug": "2023-05-05-how-we-reduced-the-conda-index-fetch-bandwidth", "description": "The new conda 23.3.1 release from March, 2023 includes an --experimental=jlap\nflag or experimental: [\"jlap\"] .condarc setting that can reduce repdata.json\nfetch bandwidth by orders of magnitude. This is how we developed conda's new\nincremental repodata feature.\n", "authors": ["dholth"], "tags": ["conda", "python"], "image": null, "date": "2023-05-05T00:00:00"}, {"title": "Welcome to conda.org!", "slug": "2022-04-27-welcome-to-conda-dot-org", "tags": ["announcement"], "authors": ["travishathaway"], "description": "Welcome to our new website! In this article, we talk about why we built\nit and where we see it going as more content and features are added in\nthe future.\n", "image": null, "date": "2023-04-27T00:00:00"}]
[{"title": "Conda doctor: Detecting conda environment inconsistencies easily", "slug": "2023-06-01-conda-doctor", "description": "The new `conda doctor` command allows users to detect packages with missing files in their conda environments.\n", "authors": ["forgottenprogramme"], "tags": ["conda", "environments"], "image": "img/blog/2023-06-01-conda-doctor/stethoscope.jpg", "date": "2023-06-01T00:00:00"}, {"title": "May Releases for Conda, Conda-Build, and Conda-Libmamba-Solver", "slug": "2023-05-31-may-2023-releases", "description": "Conda 23.5.0, conda-build 3.25.0, and conda-libmamba-solver 23.5.0 have been released! \ud83c\udf89\n", "authors": ["beeankha"], "tags": ["announcement", "conda", "conda-build", "conda-libmamba-solver"], "image": null, "date": "2023-05-31T00:00:00"}, {"title": "How to use conda-build to build a Python package with C/C++ dependencies", "slug": "2023-05-18-how-to-use-conda-build", "authors": ["vasvi"], "tags": ["conda"], "image": null, "description": "We have created a blog to help you create your own Python package with Conda-build", "date": "2023-05-18T00:00:00"}, {"title": "How we reduced conda's index fetch bandwidth by 99%", "slug": "2023-05-05-how-we-reduced-the-conda-index-fetch-bandwidth", "description": "The new conda 23.3.1 release from March, 2023 includes an --experimental=jlap\nflag or experimental: [\"jlap\"] .condarc setting that can reduce repdata.json\nfetch bandwidth by orders of magnitude. This is how we developed conda's new\nincremental repodata feature.\n", "authors": ["dholth"], "tags": ["conda", "python"], "image": null, "date": "2023-05-05T00:00:00"}, {"title": "Welcome to conda.org!", "slug": "2022-04-27-welcome-to-conda-dot-org", "tags": ["announcement"], "authors": ["travishathaway"], "description": "Welcome to our new website! In this article, we talk about why we built\nit and where we see it going as more content and features are added in\nthe future.\n", "image": null, "date": "2023-04-27T00:00:00"}]

168 changes: 166 additions & 2 deletions learn/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,51 @@ sidebar_position: 2

# Frequently asked questions

## Why should I use conda?

Conda offers several advantages that make it a popular choice for package management and environment management:

- **Simplified Package Management**: Conda simplifies the installation, management, and updating of software packages and their dependencies. It provides a unified interface for package installation across different programming languages.

- **Cross-Platform Compatibility**: Conda works seamlessly on Windows, macOS, and Linux operating systems. It ensures consistent package installations and avoids compatibility issues across different platforms.

- **Extensive Package Ecosystem**: Conda provides access to a large collection of pre-built packages for various domains, including data science, machine learning, scientific computing, and more. This extensive ecosystem saves time by eliminating the need for manual compilation and configuration.

- **Environment Management**: With conda, you can create isolated environments for different projects. These environments allow you to manage and control the dependencies and versions of packages specific to each project, ensuring reproducibility and avoiding conflicts between different software requirements.

- **Conda Channels**: Conda channels serve as repositories for hosting and managing packages. Channels like [conda-forge](https://conda-forge.org/) offer a wide range of community-maintained packages, expanding the available options for software development and experimentation.

- **The Choice Between Conda and Mamba**: Conda is the default package manager, while Mamba is a high-performance, drop-in replacement for conda. Mamba offers faster package installations and updates, making it a suitable choice for users who prioritize speed and performance.

Using conda provides a streamlined approach to package management, platform compatibility, environment isolation, and access to an extensive package ecosystem. It is particularly beneficial for data scientists, researchers, and developers working with diverse software requirements across different projects.

## Can I use conda to manage non-Python packages?

Yes, conda can be used to manage non-Python packages. While conda is widely known for its capabilities in managing Python packages, it is not limited to Python alone. Conda supports package management for multiple programming languages, including R, Java, C/C++, and more. It allows you to install, manage, and update packages from different languages, ensuring consistent package installations and dependencies across your projects.

To install a non-Python package, you can use the following command:
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

```
conda install <package-name>
```

By default, Conda will search for the package in the default channels. However, you can also obtain non-Python packages from other channels apart from conda-forge. For example, you can specify a different channel using the -c flag:
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

```
conda install -c <channel-name> <package-name>
```

For example, to install a non-Python package like gcc for C/C++ programming language, from the conda-forge channel, you can run:
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

```
conda install -c conda-forge gcc
```

Similarly, you can use conda to manage packages for other languages such as R, Java, or any other supported language. Just replace `<package-name> `with the specific package you want to install.
kathatherine marked this conversation as resolved.
Show resolved Hide resolved
This flexibility makes conda a versatile choice for managing a wide range of software packages, regardless of the programming language.

Feel free to explore different channels to find the desired non-Python packages.

## What is a conda channel?

Conda channels are the locations where conda packages are stored. By default, packages are automatically downloaded and updated from the `default` channel, but other channels (i.e., [conda-forge](https://conda-forge.org/)) can be specified using the `--channel` flag, as shown in the example below:
Expand All @@ -18,13 +63,40 @@ For more information, please check out the [conda documentation page on channels

[Conda-forge](https://conda-forge.org/) is a [community-led GitHub organization](https://github.com/conda-forge) that provides access to thousands of conda package recipes. All of these recipes are open source and can be installed with the conda package manager by specifying conda-forge as the channel.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know this isn't your addition, Pinak, but we should be sure we're consistent with the conda-forge naming.

@jaimergp, is it supposed to always be lowercase, or is capitalizing at the beginning of a sentence fine?


## Why does conda have so many meanings in different contexts?

In different contexts, the term "conda" can refer to various aspects:

- **Conda as a tool**: Conda is an open-source, cross-platform package manager used for managing software packages.

- [**Conda packages**](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/packages.html): These are compressed tarballs or .conda files containing system-level libraries, modules, executables, and metadata, installed into the designated prefix.
kathatherine marked this conversation as resolved.
Show resolved Hide resolved
(Here, "prefix" refers to the installation directory where the packages are installed. It represents the target location on your system where the package files are placed.)

- [**Conda environments**](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/environments.html): Conda environments are directories that contain specific collections of conda packages installed for a particular project or use case.

- **Conda channels**: Conda channels are locations where packages are stored and serve as the base for hosting and managing packages. They can be hosted on various platforms, including [Anaconda.org](https://anaconda.org/) and others.

- **Conda, the package format**: Conda can also refer to the package format itself, which is an archive containing programs and metadata needed by package managers.

- **Conda distributions**: Conda is included in various distributions. [Miniconda](https://docs.conda.io/en/latest/miniconda.html) provides a minimal installation, [Anaconda](https://www.anaconda.com/) includes additional pre-installed packages, and there is also [Micromamba](https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html), a lightweight distribution based on Conda.
- **Miniconda and Anaconda**: These are distributions that include conda as the package manager. [Miniconda](https://docs.conda.io/en/latest/miniconda.html) provides a minimal installation, while [Anaconda](https://www.anaconda.com/) includes additional pre-installed packages.

- **Conda community**: The Conda community includes channels like [conda-forge](https://conda-forge.org/) and [bioconda](https://bioconda.github.io/), which provide additional packages and resources.

- [**Mamba**](https://mamba.readthedocs.io/en/latest/installation.html): Mamba is a high-performance, drop-in replacement for Conda. It is written in C++ and offers faster package management.

- [**Conda Package Specification**](https://conda.io/projects/conda-build/en/latest/resources/package-spec.html): This refers to the contents of an extracted package, regardless of the compression format used.

- **Installing conda or packages**: This context refers to the process of installing conda itself or using conda to install other packages.

You can find more about this [here](https://conda.org/community#the-many-meanings-of-conda).
## What is a feedstock?

A feedstock is a conda package repository.

## How can I search for packages?

There are many ways to search for packages, either in your browser or in the command line. Many package organizations keep lists of their packages on their websites, so you can either use a search engine or go directly to package organization websites like [conda-forge.org](https://conda-forge.org/) and [bioconda.github.io](https://bioconda.github.io/). Anaconda also provides package hosting on [anaconda.org](https://anaconda.org/).
There are many ways to search for packages, either in the browser or on the command line. Many package organizations keep lists of their packages on their websites, so you can either use a search engine or go directly to package organization websites like [conda-forge.org](https://conda-forge.org/) and [bioconda.github.io](https://bioconda.github.io/). Anaconda also provides package hosting on [anaconda.org](https://anaconda.org/).

If you want to use conda to search for packages, use the command `conda search`. Enter `conda search -h` for more information.

Expand Down Expand Up @@ -54,6 +126,72 @@ The Python packaging system is prone to develop incompatibilities over time; the

For this reason, it is highly recommended to utilize separate conda environments for each project/purpose in order to mitigate the dependency management issues of the Python packaging system and to keep project dependencies as separate and simple as possible.

## Can I share conda environments with others? If so, how?

Yes, you can share conda environments with others, making it easier to collaborate on projects or reproduce specific software setups. Here's how you can share conda environments:

1. **Exporting the environment:** With conda, you can export the environment to a YAML file that contains a list of all the packages and their versions. Open the terminal or command prompt, activate the environment you want to share, and use the following command:
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

```
conda env export > environment.yml
```

This command exports the environment to an `environment.yml` file.
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

2. **Sharing the environment file:** Once you have the `environment.yml` file, you can share it with others through various means, such as email, file sharing services, or version control systems like Git.

The `environment.yml` file contains information about the dependencies required for the environment, including packages, versions, and channels. Make sure to communicate any specific instructions or requirements related to the environment, such as additional dependencies or channels.
3. **Creating the environment from the file:** To create an identical environment on another machine, the other person can use the following command in their terminal or command prompt:
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

```
conda env create -f environment.yml
```

This command reads the `environment.yml` file and recreates the environment with the same package versions and dependencies. The person building an environment from this file needs to have conda or mamba installed on their system.
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

Note: If using mamba instead of conda, the command will be:
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

```
mamba env create -f environment.yml
```

4. **Activating the shared environment:** After the environment is successfully created, the other person can activate it with:
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

```
conda activate <environment-name>
```

or
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

```
mamba activate <environment-name>
```

Replace `<environment-name>` with the name of the shared environment.
kathatherine marked this conversation as resolved.
Show resolved Hide resolved
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

By following these steps, you can easily share conda environments, ensuring consistent dependencies and versions.
Remember that channels play a crucial role in environment replication. If your environment relies on packages from specific channels other than the defaults, then you might need to add those channels using:
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

```
conda config --add channels <channel-name>
```

or

```
mamba config --add channels <channel-name>
```

before creating the environment from the YAML file.
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

## I want to create a conda package for my project. Where do I start?

To create a conda package for your project, you can start by referring to the official documentation provided by [conda-build](https://github.com/conda/conda-build).

For step-by-step guidance on setting up packages, defining dependencies, handling different platforms, and more, you can check out the [documentation for conda-build](https://docs.conda.io/projects/conda-build/en/stable/user-guide/tutorials/building-conda-packages.html).

If you need further assistance or have specific questions related to creating conda packages, visit the [conda community page](https://conda.org/community).

## What is a dependency graph?

A [dependency graph](https://en.wikipedia.org/wiki/Dependency_graph) is a tree-like data structure where each node points to all of the things that it depends on. Then, each of those dependency nodes point at all of their particular dependencies, and so on. Simply put, it's a graph that represents how objects depend on each other.
Expand All @@ -73,6 +211,33 @@ existing content:

See our [Contributing](https://github.com/conda-incubator/conda-dot-org/blob/main/CONTRIBUTING.md) documentation for more information on submitting blog posts.

## How is the conda community organized?

The conda community is a vibrant and diverse group of users and developers who utilize conda, a popular package management system, for creating, managing, and distributing software environments. The conda community consists of various sub-communities that play an important role in supporting and extending the functionality of conda. Some of these communities include:

- [conda-forge](https://conda-forge.org/): A community-led collection of recipes, build infrastructure, and packages for conda. It provides a wide range of community-maintained packages that can be easily installed using conda.

- [Bioconda](https://bioconda.github.io/): A specialized community for bioinformatics software packages. Bioconda offers a comprehensive collection of bioinformatics tools and libraries that can be easily managed with conda.

- [Micromamba](https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html): A lightweight, fast, and pure C++ based alternative to conda. Micromamba is designed to provide a streamlined package management experience and is compatible with conda environments and packages.

These communities actively contribute to the conda ecosystem, providing additional packages, resources, and support for users and developers.

To contact us, please refer to the [Community Page](https://conda.org/community#how-to-reach-us).

## Does the conda community have online events, meetings, or calls?

The conda community offers diverse events and meetings for engagement:

- **Anaconda** hosts webinars, tutorials, and industry events. Check out the list of upcoming and archived events [here](https://www.anaconda.com/events).

- Regular meetings are conducted by the **conda community** to discuss updates and ideas. [Find the meeting notes here](https://hackmd.io/@conda-community?tags=%5B%22meeting-notes%22%5D).

- **Conda-forge** holds biweekly developer meetings, with [minutes available here](https://conda-forge.org/docs/orga/minutes/00_intro.html).

- **Mamba** also organizes biweekly developer meetings. [Get more information here](https://github.com/mamba-org/mamba#biweekly-dev-meeting).

Participating in these events and meetings provides valuable opportunities to connect and contribute to the conda community.
## I see a problem with the website. How do I report it?

Please create an [issue](https://github.com/conda-incubator/conda-dot-org/issues) in GitHub to report any problems with the website. We also welcome pull requests!
Expand All @@ -82,5 +247,4 @@ Please create an [issue](https://github.com/conda-incubator/conda-dot-org/issues
If you need help with any aspect of the conda ecosystem, feel free to reach out to us via any of our online channels.

For more information, read [How to reach us](/community/#how-to-reach-us) on the [Community](/community) page.