# yaml-language-server: $schema=https://raw.githubusercontent.com/prefix-dev/recipe-format/main/schema.json context: name: mamba libmamba_version: "1.5.8" libmambapy_version: "1.5.8" mamba_version: "1.5.8" release: "2024.03.25" build_number: 2 # libmamba_version_split: ${{ libmamba_version.split('.') }} recipe: name: mamba-split source: url: https://github.com/mamba-org/mamba/archive/refs/tags/${{ release }}.tar.gz sha256: 6ddaf4b0758eb7ca1250f427bc40c2c3ede43257a60bac54e4320a4de66759a6 build: number: ${{ build_number }} outputs: - package: name: libmamba version: ${{ libmamba_version }} build: script: - ${{ "build_mamba.sh" if unix }} - ${{ "build_mamba.bat" if win }} requirements: build: - ${{ compiler('cxx') }} - cmake - ninja - ${{ "python" if win }} host: - libsolv >=0.7.23 - libcurl >=8.4.0 - openssl - libarchive - nlohmann_json - cpp-expected - reproc - reproc-cpp >=14.2.1 - spdlog - yaml-cpp - cli11 - fmt - ${{ "winreg" if win }} - zstd run: - libsolv >=0.7.23 run_exports: - ${{ pin_subpackage('libmamba', upper_bound='x.x') }} ignore_run_exports: by_name: - spdlog - python # - ${{ "python" if win }} tests: - script: - if: unix then: - test -d ${PREFIX}/include/mamba # [unix] - test -f ${PREFIX}/include/mamba/version.hpp # [unix] - test -f ${PREFIX}/lib/cmake/libmamba/libmambaConfig.cmake # [unix] - test -f ${PREFIX}/lib/cmake/libmamba/libmambaConfigVersion.cmake # [unix] - test -e ${PREFIX}/lib/libmamba${SHLIB_EXT} # [unix] else: - if not exist %LIBRARY_PREFIX%\include\mamba\version.hpp (exit 1) # [win] - if not exist %LIBRARY_PREFIX%\lib\cmake\libmamba\libmambaConfig.cmake (exit 1) # [win] - if not exist %LIBRARY_PREFIX%\lib\cmake\libmamba\libmambaConfigVersion.cmake (exit 1) # [win] - if not exist %LIBRARY_PREFIX%\bin\libmamba.dll (exit 1) # [win] - if not exist %LIBRARY_PREFIX%\lib\libmamba.lib (exit 1) # [win] # - cat $PREFIX/include/mamba/version.hpp | grep "LIBMAMBA_VERSION_MAJOR ${{ libmamba_version_split[0] }}" # [unix] # - cat $PREFIX/include/mamba/version.hpp | grep "LIBMAMBA_VERSION_MINOR ${{ libmamba_version_split[1] }}" # [unix] # - cat $PREFIX/include/mamba/version.hpp | grep "LIBMAMBA_VERSION_PATCH ${{ libmamba_version_split[2] }}" # [unix] - package: name: libmambapy version: ${{ libmambapy_version }} build: script: - ${{ "build_mamba.sh" if unix }} - ${{ "build_mamba.bat" if win }} string: py_sup${{ python | version_to_buildstring }}h${{ hash }}_${{ build_number }} requirements: build: - ${{ compiler('cxx') }} - cmake - ninja - if: build_platform != target_platform then: - python - cross-python_${{ target_platform }} - pybind11 - pybind11-abi host: - python - pip - pybind11 - pybind11-abi - openssl - yaml-cpp - cpp-expected - spdlog - fmt - termcolor-cpp - nlohmann_json - ${{ pin_subpackage('libmamba', exact=True) }} run: - python - ${{ pin_subpackage('libmamba', exact=True) }} run_exports: - ${{ pin_subpackage('libmambapy', upper_bound='x.x') }} ignore_run_exports: by_name: - spdlog tests: - python: imports: - libmambapy - libmambapy.bindings - script: - python -c "import libmambapy._version; assert libmambapy._version.__version__ == '${{ libmambapy_version }}'" - package: name: mamba version: ${{ mamba_version }} build: script: - ${{ "build_mamba.sh" if unix }} - ${{ "build_mamba.bat" if win }} string: py${{ python | version_to_buildstring }}h${{ hash }}_${{ build_number }} python: entry_points: - mamba = mamba.mamba:main requirements: build: - if: build_platform != target_platform then: - python - cross-python_${{ target_platform }} host: - python - pip - openssl - ${{ pin_subpackage('libmambapy', exact=True) }} run: - python - conda >=23.9,<24 - ${{ pin_subpackage('libmambapy', exact=True) }} tests: - python: imports: - mamba - script: - mamba --help # for some reason tqdm doesn't have a proper colorama dependency so pip check fails # but that's completely unrelated to mamba - python -c "import mamba._version; assert mamba._version.__version__ == '${{ mamba_version }}'" - if: win then: - if exist %PREFIX%\condabin\mamba.bat (exit 0) else (exit 1) # [win] - if: linux then: - test -f ${PREFIX}/etc/profile.d/mamba.sh # these tests work when run on win, but for some reason not during conda build - mamba create -n test_py2 python=2.7 --dry-run - mamba install xtensor xsimd -c conda-forge --dry-run - if: unix then: - test -f ${PREFIX}/condabin/mamba about: homepage: https://github.com/mamba-org/mamba license: BSD-3-Clause license_file: LICENSE license_family: BSD summary: A fast drop-in alternative to conda, using libsolv for dependency resolution description: | # Mamba, the Fast Cross-Platform Package Manager [![Build Status](https://github.com/mamba-org/mamba/workflows/CI/badge.svg)](https://github.com/mamba-org/mamba/actions) [![Join the Gitter Chat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mamba-org/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![docs](https://readthedocs.org/projects/mamba/badge/?version=latest&style=flat)](https://mamba.readthedocs.io/en/latest) `mamba` is a reimplementation of the conda package manager in C++. - parallel downloading of repository data and package files using multi-threading - libsolv for much faster dependency solving, a state of the art library used in the RPM package manager of Red Hat, Fedora and OpenSUSE - core parts of `mamba` are implemented in C++ for maximum efficiency At the same time, `mamba` utilizes the same command line parser, package installation and deinstallation code and transaction verification routines as `conda` to stay as compatible as possible. Mamba is part of a bigger ecosystem to make scientific packaging more sustainable. You can read our [announcement blog post](https://medium.com/@QuantStack/open-software-packaging-for-science-61cecee7fc23). The ecosystem also consists of `quetz`, an open source `conda` package server and `boa`, a fast `conda` package builder. ### Installation Please refer to the [`mamba` and `micromamba` installation guide](https://mamba.readthedocs.io/en/latest/installation.html) in the documentation. ### Additional features in Mamba and Micromamba `mamba` and `micromamba` come with features on top of stock `conda`. ### `repoquery` To efficiently query repositories and query package dependencies you can use `mamba repoquery` or `micromamba repoquery`. See the [repoquery documentation](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html#repoquery) for details. ### Installing lock files `micromamba` can be used to install lock files generated by [conda-lock](https://conda-incubator.github.io/conda-lock/) without having to install `conda-lock`. Simply invoke e.g. `micromamba create -n my-env -f conda-lock.yml` with an environment lockfile named `*-lock.yml` or `*-lock.yaml`. repository: https://github.com/mamba-org/mamba