Skip to content

A project for libraries and automated tools that manage and manipulate conda recipe files.

License

Notifications You must be signed in to change notification settings

conda-incubator/conda-recipe-manager

conda-recipe-manager

Commit Checks Integration Tests GitHub Release

Table of Contents

Overview

Conda Recipe Manager (CRM) is a library and tool set capable of parsing Conda recipe files. It is intended to be used by package builders and developers to automate the generation and editing of Conda recipe files.

Currently only recipe files in the V0 format are supported, but there is some on-going work to add full support for V1-formatted files.

Library documentation can be found here.

History

This project started out as a recipe parsing library in Anaconda's percy project.

Getting Started

General Installation

Install into your current environment

make install

Install into a custom environment

make environment
conda activate conda-recipe-manager

Developer Notes

make dev
conda activate conda-recipe-manager

The dev recipe will configure a conda environment named conda-recipe-manager with development tools installed.

pre-commit is automatically installed and configured for you to run a number of automated checks on each commit.

NOTE: As of writing, only a handful of files are checked by the linter and pre-commit. ANY NEW FILES should be added to these checks.

Running pre-commit checks

The provided Makefile also provides a handful of convenience recipes for running all or part of the pre-commit automations:

  1. make test: Runs all the unit tests
  2. make test-cov: Reports the current test coverage percentage and indicates which lines are currently untested.
  3. make lint: Runs our pylint configuration, based on Google's Python standards.
  4. make format: Automatically formats code
  5. make analyze: Runs the static analyzer, mypy.
  6. make pre-commit: Runs all the pre-commit checks

Release process

  1. Update CHANGELOG.md
  2. Update the version number in pyproject.toml
  3. Ensure environment.yaml is up to date with the latest dependencies
  4. Create a new release on GitHub with a version tag.
  5. Manage the conda-forge feedstock, as per this doc

Special Thanks

  • @cbouss for his work on the Percy project that originally inspired the recipe parser.
  • @akabanovs for his work and experimentation on package dependency graph building.
  • @JeanChristopheMorinPerso for his PR review contributions when this project was a part of Percy and answering questions about the conda file formats.

About

A project for libraries and automated tools that manage and manipulate conda recipe files.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published