跳到主要内容

在 Conda-Build Recipe 格式中驾驭变革:平衡传统与创新

·3 分钟阅读
Ken Odegard
Conda 维护者

最近,Conda 指导委员会通过 CEP-13CEP-14 批准了新的 recipe 格式 (v1),这标志着 conda 生态系统中包管理发展的一个重要里程碑。虽然社区拥抱新格式带来的潜在改进,但我们承认 v1 recipe 格式仍在 rattler-build 中开发。因此,v0 recipe 格式仍然被广泛使用,这强调了在创新与对传统系统的支持之间取得平衡的必要性。

2024 年 9 月发布

·9 分钟阅读
Mahe Iram Khan
Conda 维护者

2024 年 9 月的发布包括了对 conda、conda-build 和 conda-libmamba-solver 的更新!🎉 所有这些都已发布到 mainconda-forge 频道。

Conda 24.9.0/24.9.1 中的更改

要更新 conda,请运行

conda install -n base conda=24.9.1

✨ 特别公告 ✨

这是一个关于 conda 功能中重要且积极的未来变化的公告

在收到 conda 用户关于 conda 代码库预配置为偏向 Anaconda Inc 频道的反馈后,我们已开始弃用将 Anaconda 的频道硬编码为 conda 源代码中的默认频道集的过程,这是 conda 在该公司孵化时的遗留问题。

未来,我们将依靠 conda 发行版的提供商,例如 miniforge 或 Anaconda(包括 miniconda),来预配置他们首选的频道,例如通过运行必要的 conda config --set channels 命令。

我们还将继续致力于改进频道管理在可预见的未来,并希望得到您的反馈。

Rattler 正在迁移到 conda 组织

·3 分钟阅读
Wolf Vollprecht
prefix.dev 首席执行官
Bas Zalmstra
prefix.dev

我们很高兴地宣布,rattler,一套用于 conda 包管理的 Rust crate,带有 Python 绑定,已正式加入 conda 社区组织。此举标志着 conda 生态系统发展的一个重要里程碑。conda 社区是 conda 生态系统的多方利益相关者组织,也是制定新标准的定义机构。

什么是 rattler

rattler crate 最初由 Bas Zalmstra 创建,并在 prefix.dev 进一步开发。

其主要功能包括

  • 面向 Rust 开发人员的简洁、富有表现力的 API
  • 设计良好的 Python 绑定和文档
  • conda 生态系统中最快的 SAT 求解器 (resolvo)

Rattler 的功能范围从读取索引元数据和搜索软件包到解析、下载、安装,甚至编写软件包。在 prefix.dev,conda 生态系统的所有下一代工具都基于 rattler 构建,例如

  • Pixi:适用于 conda 和 PyPI 软件包的现代软件包管理器
  • rattler-build:一个用于构建 conda 软件包的全新且非常快速的工具,具有社区设计的、经过改进的 recipe 格式

采用和 Python 绑定

Rattler 已被广泛用于构建自定义工具(大型组织如 PalantirQuantCoChicago Trading Company 等)。

Rattler 的 Python 绑定最初由 Tarun Pratap Singh 开发,是编程式处理 conda 软件包的最简单方法之一。可以从 conda-forgePyPI 安装!

import asyncio
import tempfile
from rattler import solve, install, VirtualPackage

async def main() -> None:
# Let's solve the environment
print("started solving the environment")
solved_records = await solve(
# Channels to use for solving
channels=["conda-forge"],
# The specs to solve for
specs=["python 3.12.*", "pip", "requests 2.31.*"],
# Virtual packages define the specifications of the environment
virtual_packages=VirtualPackage.detect(),
)
print("solved required dependencies")

# Install the packages into a new environment (or updates it if it already existed).
env_path = tempfile.mkdtemp()
await install(
records=solved_records,
target_prefix=env_path,
)

print(f"created environment: {env_path}")

if __name__ == "__main__":
asyncio.run(main())

迁移到 Conda 社区

通过作为新的社区项目加入 conda 社区,rattler 项目现在受社区治理。此转变为更广泛的 conda 生态系统打开了利用和贡献于此强大工具集的新机会。开发工作继续由 prefix.dev 团队领导,他们将继续以高速率进行 conda 生态系统的许多创新。

什么是 Conda 社区?

conda 社区是一个开源软件社区,致力于开发围绕 conda 软件包的工具。conda 社区的成员是 prefix.dev、Anaconda、Quansight、NVIDIA、Voltron Data 和其他对 conda 生态系统有既得利益的公司的员工。

如果您是工具开发人员,并且对 rattlerpy-rattler 的功能感兴趣,您可以在这里找到文档

您可以在 prefix.dev Discord 上找到 rattler 的作者 - 随时联系并提问!我们当然也很活跃在 conda 社区频道(如 Element)。

关于 conda-forge 起源的新视频

·一分钟阅读
Wolf Vollprecht
prefix.dev 首席执行官

第一个“与 Conda 社区聊天”发布了!在这一集中,Wolf Vollprecht 和 Filipe Fernandes 讨论了 conda-forge 的起源。观看此处的视频

您是否想过 conda-forge 是如何以及何时创建的?在第一期“与 Conda 社区聊天”中,我们揭示了 conda-forge 的起源故事。

其他主题

  • 科学家及其与软件的关系
  • 维持开源(和 conda-forge)
  • 来自 conda-forge 9 年的轶事
  • 讨论 pixi 以及 Filipe 对它的看法

Filipe Fernandes(也称为 ocefpaf)是一位物理海洋学家,转变为研究软件工程师和软件包爱好者。他对开源软件充满热情,并尝试通过代码使气象/海洋科学变得更好。Filipe 是 conda 指导委员会成员和 conda-forge 核心成员。

您的主持人是 Wolf Vollprecht,prefix.dev 的首席执行官,conda 指导委员会成员和 conda-forge 核心成员。

Conda 生态系统详解

·6 分钟阅读
Dasha Gurova
开源社区经理
Jannis Leidel
指导委员会成员

了解 conda 生态系统——一个充满活力的社区,支持开源、语言无关和多平台软件包管理系统。探索用于管理软件包和环境的 conda CLI 工具,并探索关键存储库,如 conda-forge、bioconda 和 defaults。您将学习如何开始使用 conda 工具,需要牢记的重要事项,以及多方利益相关者治理如何确保生态系统保持可靠且所有人都可以访问。