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

Add Conda Ecosystem Explained article. #198

Merged
merged 28 commits into from
Aug 22, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
31d93da
Add Conda Ecosystem Explained article.
jezdez Aug 14, 2024
ff31548
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 14, 2024
4d4ae8f
Update blog/2024-08-14-conda-ecosystem-explained.mdx
jezdez Aug 14, 2024
3e1cc13
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 14, 2024
57166cd
Apply suggestions from code review
jezdez Aug 14, 2024
7c5f8fb
Apply suggestions from code review
jezdez Aug 14, 2024
6d3987d
Update blog/2024-08-14-conda-ecosystem-explained.mdx
jezdez Aug 14, 2024
afe2665
Apply suggestions from code review
jezdez Aug 15, 2024
4368a14
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 15, 2024
b7bedff
Apply suggestions from code review
jezdez Aug 19, 2024
d8bf200
Update blog/2024-08-14-conda-ecosystem-explained.mdx
jezdez Aug 19, 2024
bee0219
Minor fixes.
jezdez Aug 19, 2024
779331e
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 19, 2024
a76eab1
Disable mangling the makrdown files, since you know, whitespace is si…
jezdez Aug 19, 2024
3120db9
Merge branch 'conda-ecosystem-explained' of github.com:conda-incubato…
jezdez Aug 19, 2024
3f5fe0c
Remove significant whitespace again.
jezdez Aug 19, 2024
6b920f7
Apply suggestions from code review
jezdez Aug 20, 2024
4de00aa
Apply suggestions from code review
jezdez Aug 20, 2024
f40c037
[pre-commit.ci] pre-commit autoupdate (#195)
pre-commit-ci[bot] Aug 14, 2024
b3f4344
[pre-commit.ci] pre-commit autoupdate (#199)
pre-commit-ci[bot] Aug 20, 2024
7f6b30a
Apply suggestions from code review
jezdez Aug 21, 2024
12c04b0
Merge branch 'main' into conda-ecosystem-explained
jezdez Aug 21, 2024
bbd7c99
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 21, 2024
c1bc00b
Update blog/2024-08-14-conda-ecosystem-explained.mdx
jezdez Aug 21, 2024
0eeefb0
Update blog/2024-08-14-conda-ecosystem-explained.mdx
jezdez Aug 21, 2024
e81c156
Apply suggestions from code review
jezdez Aug 22, 2024
f08e20d
Remove status
jezdez Aug 22, 2024
3024533
Update blog/2024-08-14-conda-ecosystem-explained.mdx
jezdez Aug 22, 2024
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
95 changes: 95 additions & 0 deletions blog/2024-08-14-conda-ecosystem-explained.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
---
title: "Conda Ecosystem Explained"
slug: "2024-08-14-conda-ecosystem-explained"
authors: [dashagurova, jezdez]
tags: [conda, community, governance]
description: |
Conda Ecosystem Explained
jezdez marked this conversation as resolved.
Show resolved Hide resolved
jezdez marked this conversation as resolved.
Show resolved Hide resolved
---

jezdez marked this conversation as resolved.
Show resolved Hide resolved
## What is the conda ecosystem?

At its core, the conda ecosystem is a community supporting an open-source, language-agnostic, and multi-platform package management system.

But what does a "package management ecosystem" really mean? Without diving too deep into every detail, here are the three main components conda community maintains:
jezdez marked this conversation as resolved.
Show resolved Hide resolved

- **CLI Tools for Package Management**: conda command-line tools make it easy to install and manage dependencies in isolated development environments across Linux, Windows, and macOS. Conda works with packages written in any language, e.g. Python, R, C, or Fortran.
- **Package Repository**: most publicly available conda packages are hosted on **anaconda.org**, organized into channels. Channels are like remote warehouses where packages are stored and can be pulled from. You can find channels maintained by community, companies, or individuals.
jezdez marked this conversation as resolved.
Show resolved Hide resolved
- **Build Tools**: If you want to create and share your own conda packages, the ecosystem provides tools to help you build and distribute them efficiently.

This system is bolstered by various other supporting projects, all of which you can explore on conda's [GitHub](https://github.com/conda).
jezdez marked this conversation as resolved.
Show resolved Hide resolved

## Conda package & environment manager

The cornerstone of this entire ecosystem is the [conda](https://github.com/conda/conda) package and environment manager. Originally developed by Anaconda, Inc. and implemented in Python, conda is not limited to Python \- it's a fully capable package manager that handles dependencies across multiple languages and platforms. Whether you're a data scientist working with Python, R, or a machine learning engineer dealing with libraries in C or Fortran, conda has you covered.
jezdez marked this conversation as resolved.
Show resolved Hide resolved

Conda was open-source from the start and has grown significantly thanks to support from a broad community. Today, it's [governed by a multi-stakeholder steering council](https://github.com/conda/governance) under the fiscal sponsorship of the [NumFOCUS](https://numfocus.org) non-profit, ensuring it remains a balanced, community-driven project.
jezdez marked this conversation as resolved.
Show resolved Hide resolved

And yes, conda is free. Always has been, always will be. This commitment to open-source has led to the development of several compatible alternatives within the conda ecosystem, like [Mamba](https://mamba.readthedocs.io/) — a faster reimplementation in C++ \- and [Pixi](https://pixi.sh/), a newer, Rust-based package management tool.
jezdez marked this conversation as resolved.
Show resolved Hide resolved

All of which use the same conda standards and formats, that are collaboratively improved through the [Conda Enhancement Proposal (CEP)](https://github.com/conda/ceps/blob/main/cep-1.md) process.
jezdez marked this conversation as resolved.
Show resolved Hide resolved
jezdez marked this conversation as resolved.
Show resolved Hide resolved

## Conda Package Repository and Channels

When it comes to managing packages with conda or conda-compatible tools, understanding where these packages come from is key. Anaconda.org serves as a central hub for conda packages, organized into various channels. While anyone can create their own channel on anaconda.org to host conda packages, we'll focus on the largest and most significant channels within the conda ecosystem.
jezdez marked this conversation as resolved.
Show resolved Hide resolved

### `conda-forge`

[conda-forge](https://conda-forge.org) is one of the largest and impactful channels in the conda ecosystem. Entirely community-driven, this channel hosts over 25,000 packages, making it a go-to resource for developers across the globe. Conda-forge is open-source, free to use, and maintained by a group of dedicated volunteers. The governance model ensures that the channel remains reliable and accessible to everyone.
jezdez marked this conversation as resolved.
Show resolved Hide resolved
jezdez marked this conversation as resolved.
Show resolved Hide resolved

### Bioconda
jezdez marked this conversation as resolved.
Show resolved Hide resolved

If your work involves computational biology, [Bioconda](https://bioconda.github.io) is the channel you’ll want to explore. Unlike conda-forge, which covers a wide variety of packages, Bioconda is focused on bioinformatics. It offers over 8,000 packages that cater to subdomains like genomics, proteomics, structural biology, and biomass analysis. Like conda-forge, bioconda is open-source and free to use, maintained by a community of volunteers.

### `Defaults`
jezdez marked this conversation as resolved.
Show resolved Hide resolved

The `defaults` channel is maintained by Anaconda, Inc. It's important to note that this channel comes with [Terms of Service](https://legal.anaconda.com/policies/en/). While largely free for individual users, students, and small companies, there are scenarios where a license might be required.
jezdez marked this conversation as resolved.
Show resolved Hide resolved

jezdez marked this conversation as resolved.
Show resolved Hide resolved
## Getting Started with conda tools
jezdez marked this conversation as resolved.
Show resolved Hide resolved

There are a few different ways to install and get started with conda:

<table>
<thead>
<tr>
<th>Installer</th>
<th>Package manager included</th>
<th>Automatically sets channel as:</th>
<th>Status</th>
Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure if this column is necessary.

Copy link
Member Author

Choose a reason for hiding this comment

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

In what way, unnecessary to highlight that pixi is still emerging?

</tr>
</thead>
<tbody>
<tr>
<td><a href="https://docs.anaconda.com/miniconda/miniconda-install/">Miniconda</a></td>
<td>conda</td>
<td>`defaults`</td>
<td>Stable</td>
</tr>
<tr>
<td><a href="https://github.com/conda-forge/miniforge">Miniforge</a></td>
<td>conda/mamba</td>
jezdez marked this conversation as resolved.
Show resolved Hide resolved
<td>`conda-forge`</td>
<td>Stable</td>
</tr>
<tr>
<td><a href="https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html">Micromamba</a></td>
<td>mamba</td>
<td>None</td>
<td>Stable</td>
</tr>
<tr>
<td><a href="https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html">Pixi</a></td>
<td>pixi</td>
<td>`conda-forge`</td>
<td>Emerging</td>
</tr>
</tbody>
</table>

Each of these installers offers a different path into the conda ecosystem, allowing you to tailor your setup based on your preferences.

jezdez marked this conversation as resolved.
Show resolved Hide resolved
## Anaconda's Role in Supporting the conda ecosystem

Anaconda, Inc. plays a vital role in keeping the conda ecosystem strong and sustainable. Anaconda Inc. contributes through regular donations to NumFOCUS, providing engineering resources, and generously covering hosting fees for anaconda.org. This support is essential for keeping community channels like conda-forge and Bioconda free and accessible.
jezdez marked this conversation as resolved.
Show resolved Hide resolved

However, it's important to clarify that the conda ecosystem is governed by an independent, diverse community committed to offering free and open source tools and unrestricted package repositories for all users.
jezdez marked this conversation as resolved.
Show resolved Hide resolved
2 changes: 1 addition & 1 deletion blog/news.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[{"title": "July 2024 Releases", "slug": "2024-07-23-july-releases", "authors": ["beeankha"], "tags": ["announcement", "conda", "conda-build", "conda-libmamba-solver"], "description": "Conda 24.7.0/.1, conda-build 24.7.0, and conda-libmamba-solver 24.7.0 have been released! \ud83c\udf89\n", "image": "img/blog/2024-07-23-july-releases/banner.png", "date": "2024-07-23T00:00:00"}, {"title": "June 2024 Releases", "slug": "2024-06-14-june-releases", "authors": ["dashagurova"], "tags": ["announcement", "conda-index", "conda-package-handling", "conda-package-streaming"], "description": "Conda-index 0.5.0, conda-package-handling 2.3.0 and conda-package-streaming 0.10.0 have been released! \ud83c\udf89\n", "image": "img/blog/2024-06-14-june-releases/banner.png", "date": "2024-06-14T00:00:00"}, {"title": "Developer Guide: A Tale of Five Prefixes", "slug": "2024-05-20-prefixes", "authors": ["kenodegard", "chatgpt"], "tags": ["conda", "context", "prefix", "prefixes", "api"], "description": "Prefixes, prefixes, prefixes! All the prefixes!", "image": "img/blog/2024-05-20-prefixes/banner.png", "date": "2024-05-20T00:00:00"}, {"title": "April and May 2024 Releases", "slug": "2024-05-13-april-and-may-releases", "authors": ["beeankha"], "tags": ["announcement", "conda", "conda-build"], "description": "Conda 24.4.0, conda 24.5.0, and conda-build 24.5.0 have been released! \ud83c\udf89\n", "image": "img/blog/2024-05-13-april-and-may-releases/banner.png", "date": "2024-05-13T00:00:00"}, {"title": "March 2024 Releases", "slug": "2024-03-20-march-releases", "authors": ["beeankha"], "tags": ["announcement", "conda", "conda-build"], "description": "Conda 24.3.0 and conda-build 24.3.0 have been released! \ud83c\udf89\n", "image": "img/blog/2024-03-20-march-releases/banner.png", "date": "2024-03-20T00:00:00"}]
[{"title": "Conda Ecosystem Explained", "slug": "2024-08-14-conda-ecosystem-explained", "authors": ["dashagurova", "jezdez"], "tags": ["conda", "community", "governance"], "description": "Conda Ecosystem Explained", "date": "2024-08-14T00:00:00"}, {"title": "July 2024 Releases", "slug": "2024-07-23-july-releases", "authors": ["beeankha"], "tags": ["announcement", "conda", "conda-build", "conda-libmamba-solver"], "description": "Conda 24.7.0/.1, conda-build 24.7.0, and conda-libmamba-solver 24.7.0 have been released! \ud83c\udf89\n", "image": "img/blog/2024-07-23-july-releases/banner.png", "date": "2024-07-23T00:00:00"}, {"title": "June 2024 Releases", "slug": "2024-06-14-june-releases", "authors": ["dashagurova"], "tags": ["announcement", "conda-index", "conda-package-handling", "conda-package-streaming"], "description": "Conda-index 0.5.0, conda-package-handling 2.3.0 and conda-package-streaming 0.10.0 have been released! \ud83c\udf89\n", "image": "img/blog/2024-06-14-june-releases/banner.png", "date": "2024-06-14T00:00:00"}, {"title": "Developer Guide: A Tale of Five Prefixes", "slug": "2024-05-20-prefixes", "authors": ["kenodegard", "chatgpt"], "tags": ["conda", "context", "prefix", "prefixes", "api"], "description": "Prefixes, prefixes, prefixes! All the prefixes!", "image": "img/blog/2024-05-20-prefixes/banner.png", "date": "2024-05-20T00:00:00"}, {"title": "April and May 2024 Releases", "slug": "2024-05-13-april-and-may-releases", "authors": ["beeankha"], "tags": ["announcement", "conda", "conda-build"], "description": "Conda 24.4.0, conda 24.5.0, and conda-build 24.5.0 have been released! \ud83c\udf89\n", "image": "img/blog/2024-05-13-april-and-may-releases/banner.png", "date": "2024-05-13T00:00:00"}]
Loading