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
Changes from 1 commit
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
129 changes: 129 additions & 0 deletions learn/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,39 @@ 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.
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

- **Conda Channels**: Conda channels serve as repositories for hosting and managing packages. Channels like Conda Forge offer a wide range of community-maintained packages, expanding the available options for software development and experimentation.
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

- **Choice of 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.
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

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 -c conda-forge <package-name>
```
For example, to install a non-Python package like gcc for C/C++ programming language, you can run:
```
conda install -c conda-forge gcc
```
Copy link
Contributor

Choose a reason for hiding this comment

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

@jaimergp, I'd love opinions on this.

You can get non-Python packages from more than conda-forge and specifying conda-forge here makes it seem like it's the only option, so we might want to explain that.

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.
This flexibility makes Conda a versatile choice for managing a wide range of software packages, regardless of the programming language.

## 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,6 +51,33 @@ 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

- [**Conda environments**](https://docs.conda.io/docs/using/envs.html#:~:text=A%20conda%20environment%20is%20a,NumPy%201.6%20for%20legacy%20testing.): Conda environments are directories that contain specific collections of Conda packages installed for a particular project or use case.
Copy link
Contributor

Choose a reason for hiding this comment

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

Are you meaning to have this URL highlight words on the other end?


- **Conda channels**: Conda channels are locations where packages are stored and serve as the base for hosting and managing packages. They are hosted on the [Anaconda.org](https://anaconda.org/) platform.
Copy link
Contributor

Choose a reason for hiding this comment

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

Is Anaconda.org the only channel host?


- **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.

- **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.
Copy link
Contributor

Choose a reason for hiding this comment

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

There's also Micromamba, though I know you're talking about conda here.


- **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.

- **Conda, the tool (Mamba)**: [Mamba](https://mamba.readthedocs.io/en/latest/installation.html) is a high-performance, drop-in replacement for Conda, written in C++, offering faster package management.
Copy link
Contributor

Choose a reason for hiding this comment

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

Did you mean to say "Mamba, the tool" here? It's an alternative to conda, but I didn't think you needed conda to use Mamba and this entry kind of makes it seem like you do.


- [**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)
Copy link
Contributor

Choose a reason for hiding this comment

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

This sentence needs a period at the end.



kathatherine marked this conversation as resolved.
Show resolved Hide resolved
## What is a feedstock?

A feedstock is a conda package repository.
Expand Down Expand Up @@ -54,6 +114,54 @@ 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 your terminal or command prompt, activate the environment you want to share, and use the following command:
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's go with "your environment" instead of "the environment" throughout. Makes it a little less formal sounding.

```
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. Make sure to communicate any specific instructions or requirements related to the environment, such as additional dependencies or channels.
Copy link
Contributor

Choose a reason for hiding this comment

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

Doesn't the environment.yml file include information about dependencies in it?


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 needs to have conda or mamba installed on their system.
Copy link
Contributor

Choose a reason for hiding this comment

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

Yeah, go with "you" instead of "the person". We tend to use 2nd-person throughout our writing to decrease the formality.

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 the environment relies on packages from specific channels other than the defaults, the other person might need to add those channels using:
kathatherine marked this conversation as resolved.
Show resolved Hide resolved
```
conda config --add channels <channel-name>
```
or
kathatherine marked this conversation as resolved.
Show resolved Hide resolved
```
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 your package, defining dependencies, handling different platforms, and more, you can checkout the [documentation for conda-build](https://docs.conda.io/projects/conda-build/en/stable/user-guide/tutorials/building-conda-packages.html) .
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

If you need further assistance or have specific questions related to creating conda packages, I recommend visiting the [conda community page](https://conda.org/community).
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

## 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 +181,27 @@ 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 the Conda package management system for creating, managing, and distributing software environments. The community is organized through various channels to facilitate collaboration and support.
kathatherine marked this conversation as resolved.
Show resolved Hide resolved

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.


kathatherine marked this conversation as resolved.
Show resolved Hide resolved
## 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 Down