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

blog post about anaconda #428

Merged
merged 22 commits into from
Aug 12, 2024
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
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
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ ci:
autoupdate_schedule: "quarterly"
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: "v0.5.0"
rev: "v0.5.7"
hooks:
- id: ruff
args: ["--fix", "--unsafe-fixes"]
Expand Down
1 change: 1 addition & 0 deletions conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"sphinx_design",
"sphinx_reredirects",
"sphinxcontrib.youtube",
"sunpy_sphinx_theme.cards",
]
myst_enable_extensions = ["colon_fence"]
myst_update_mathjax = False
Expand Down
2 changes: 1 addition & 1 deletion posts/2018/2018-04-24_09_release.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ release of the SunPy core package.
SunPy 0.9 brings improved support for downloading data from the JSOC and
bugfixes compared to the 0.8.x series of releases. The 0.9.x series will be the
last series of SunPy releases to support Python 2. This is because Python 2
`will not be maintained after 2019 <https://python3statement.org/>`_. The 0.9.x
will not be maintained after 2019. The 0.9.x
series will receive bugfixs only up until the and of life of Python 2 (around 18
months). No new functionality will be added to the 0.9.x series, which will also
be the last version to include `sunpy.spectra`, `sunpy.lightcurve` and
Expand Down
65 changes: 65 additions & 0 deletions posts/2024/2024-08-09-anaconda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
blogpost: true
date: Aug 09 2024
author: Nabil Freij
category: Information
---

# Anaconda packages are not "free"

We wanted to inform the wider community about [Anaconda](https://www.anaconda.com/) and if you are legally allowed to use it for free.

What is not commonly known is that Anaconda has specific clauses in its license which determine if one is able to use it for free, based on the organization you work for.
For example, [The Register](https://www.theregister.com/2024/08/08/anaconda_puts_the_squeeze_on/) has reported that:

> Research and academic organizations are just now finding out that they will have to pay for software made by Anaconda, when for years these groups were under the impression it could be used at no cost.
>
> A source who works at a medium-size non-profit academic research institution told The Register about being on the end of a legal demand to purchase a commercial license for the Anaconda-built software they had been using for free.

[Anaconda themselves summarize this in a really detailed blog post](https://www.anaconda.com/blog/is-conda-free), which we use here to form the basis of this post.

## Glossary

I want to define a few words which will be used heavily below:

nabobalis marked this conversation as resolved.
Show resolved Hide resolved
- channel or conda channel: It is a centralized repository of packages (python or not) which one can install with conda.
nabobalis marked this conversation as resolved.
Show resolved Hide resolved
- distribution: It is an installer that will install ``conda`` and configure a default channel to use.
For anaconda, this is the "defaults" channel whereas for conda-forge this is the "conda-forge " channel.
## What is free to use?
nabobalis marked this conversation as resolved.
Show resolved Hide resolved

- ``conda`` the package installation and environment management software, allows free use.
nabobalis marked this conversation as resolved.
Show resolved Hide resolved
- ``mamba`` an the alternative to ``conda`` also allows free use.
nabobalis marked this conversation as resolved.
Show resolved Hide resolved
- Anything that is provided by the [conda-forge project](https://conda-forge.org/) which means their packages, the channels they maintain and any distribution they provide.

nabobalis marked this conversation as resolved.
Show resolved Hide resolved
## What is not free to use?

- Anaconda's "defaults" channel, which is used for the base environment.
It is used if one installs the `Anaconda` distribution or the `miniconda` distribution.
Anything that is "curated, built, maintained, and served by Anaconda's engineers on its secure cloud infrastructure", has these licenses.

**Using the defaults channel can lead to you becoming legally required to pay Anaconda for the use the defaults channel.**

If you want to use these for free, you have to meet the following conditions:

- Your organization has less than 200 people, or
- Your organization has 200 or more people, but qualifies as an exempt organization in Anaconda's terms of service:

> Students and educational entities may use our free offerings in curriculum-based courses.

## What is the alternative?

The answer from the SunPy Project is the following:

- Using the channels provided by "conda-forge".
conda-forge is a community-led project which creates recipes, hosts infrastructure and distributions for use with conda.
They provide a distribution (similar to `miniconda`) called [miniforge](https://github.com/conda-forge/miniforge) is configured to use the conda-forge channel by default.
It is also the only way to [install any SunPy Project library](https://docs.sunpy.org/en/stable/tutorial/installation.html#installing-miniforge) via conda.
- Never setup or use the defaults "channel" if you install `miniforge`.

## I have Anaconda already - What should I do?

Though, you could get rid of the default channel(s) using the `conda config` command as shown [in this Stack Overflow answer about switching channels from anaconda to conda-forge](https://stackoverflow.com/a/67708768).
This is good for new environments but it doesn't remove what you've got already installed (e.g., the `base` environment) and you may be still infringing the Terms of Services for Anaconda.

Therefore, the cleanest way would be to remove Anaconda completely and install [miniforge](https://docs.sunpy.org/en/stable/tutorial/installation.html#installing-miniforge).
Unfortunately, there is no automated way of recreating all of your environments, and [this post about migrating from Anaconda to miniforge](https://it.martinos.org/help/migrating-anaconda-miniconda-install-to-a-miniforge-install/) details the steps that one has to follow to migrate.
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ sphinx_reredirects
sphinx-design
sphinxcontrib-youtube
sphinxext-opengraph
sunpy-sphinx-theme>=2.0.15
sunpy-sphinx-theme>=2.0.16

# Eclipse notebook
astropy
Expand Down
Loading