{"id":21375533,"url":"https://github.com/lsst/scipipe_conda_env","last_synced_at":"2026-01-03T00:32:08.399Z","repository":{"id":45994003,"uuid":"164499475","full_name":"lsst/scipipe_conda_env","owner":"lsst","description":"Conda environment for LSST Science Pipelines","archived":false,"fork":false,"pushed_at":"2025-01-16T11:05:13.000Z","size":539,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":65,"default_branch":"main","last_synced_at":"2025-01-22T21:41:36.025Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pipelines.lsst.io","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lsst.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-07T21:32:15.000Z","updated_at":"2021-11-27T04:01:11.000Z","dependencies_parsed_at":"2024-11-22T09:12:07.584Z","dependency_job_id":"7a35234d-d29c-40da-816d-4dd8f1b02594","html_url":"https://github.com/lsst/scipipe_conda_env","commit_stats":null,"previous_names":[],"tags_count":399,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lsst%2Fscipipe_conda_env","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lsst%2Fscipipe_conda_env/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lsst%2Fscipipe_conda_env/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lsst%2Fscipipe_conda_env/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lsst","download_url":"https://codeload.github.com/lsst/scipipe_conda_env/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243851282,"owners_count":20358166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-22T09:11:26.371Z","updated_at":"2026-01-03T00:32:08.360Z","avatar_url":"https://github.com/lsst.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Conda Environment for Science Pipelines\n\nThis repository contains the definition of the Conda environment used by the LSST Science Pipelines.\n\n\n## Contents\n\nThere are two core types of files in the `etc` directory.\n\n- `bleed` files, in the pattern of `conda3_bleed-\u003cplatform\u003e-64.yml`, indicating the names of packages on which the \n  Science Pipelines directly depend, or\n- `lock` files, in the pattern of `conda-\u003cplatform\u003e-64.lock`, indicating a specific versioned set of those packages, \n  and packages upon which they depend, which can be directly instantiated as a conda environment;\n\nWhere `\u003cplatform\u003e` is one of:\n\n- `linux`, indicating that this file has been tested on CentOS (our reference platform), and, by extension, is appropriate for use on a Linux systems;\n- `osx`, indicating that this file has been tested on macOS.\n\n### Lock files\n\nThe `lock` files describe an explicit export of conda dependencies, generated with `conda list --explicit`.\nCreating an environment based on `lock` files will bypass the conda solver, which has several advantages:\n\n1. Installing the environment is faster as the solver does not run.\n1. The environment is always installable, even if conda-forge packages are marked as broken, or hidden through a \n   patched repository metadata file (`repodata.json`), which the solver would normally try to resolve.\n\n## Update Procedures\n\nNote that these procedures should be carried out on the platform being targeted.\nThat is, generating a `linux` package list should be carried out on a Linux system.\n\n### Generating a complete new environment from the “bleed” files\n\nThis procedure will generate a completely new `\u003cpackages\u003e` which satisfies the dependencies specified in the `\u003cbleed\u003e` file.\nThis will likely cause significant changes to the environment, and should normally be preceded by an RFC.\n\n1. Ensure your conda is up-to-date\n1. Create the conda environment from bleed: `conda env update --name pinned_\u003cdate\u003e --file conda3_bleed-\u003cplatform\u003e-64.yml`\n   * Use YYYYMMDD format for `\u003cdate\u003e`\n   * Use `osx` or `linux` for `\u003cplatform\u003e`\n1. Activate the environment: `source activate pinned_\u003cdate\u003e`\n1. Check that the list of packages in the environment are as expected\n1. Export the environment, over-writing the previous `lock` file:\n   `conda list --explicit \u003e conda-\u003cplatform\u003e-64.lock`\n1. Update the `requirements.txt` file in the [linting repository](https://github.com/lsst/linting) to match the version numbers specified in the new conda environment.\n\n### Adding a new package to the environment\n\nTo add a new package without modifying the existing environment,\nfollow this procedure. Please note that the existing environment must\nbe solvable, otherwise `conda install` may fail. If it is not\nsolvable, follow the previous procedure for completing a new\nenvironment from the bleed file.\n\n1. Add the name of the new package to install to the `bleed` file. Try\n   to choose an appropriate section, if possible.\n1. Instantiate the environment based on a `lock` file: `conda create --name pinned_\u003cdate\u003e --file conda-\u003cplatform\u003e-64.lock`\n   * Use YYYYMMDD format for `\u003cdate\u003e`\n   * Use `osx` or `linux` for `\u003cplatform\u003e`\n1. Activate the environment: `source activate pinned_\u003cdate\u003e`\n1. Install the package: `conda install --no-update-deps \u003cpackagename\u003e`\n1. Export the environment, over-writing the previous `lock` file: `conda list --explicit \u003e conda-\u003cplatform\u003e-64.lock`\n1. Update the `requirements.txt` file in the [linting repository](https://github.com/lsst/linting) to match the version numbers specified in the new conda environment.\n\n## Conda Channels\nWe use the [`conda-forge` channel](https://conda-forge.org/) as our primary distribution source for packages.\n\n## Historical note\n\nJune 2020: We previously used environment export (`packages` files) and allowed the use of pip\npackages in the `bleed` file. We moved to using `lock` files and no longer\nsupport pip packages in the `bleed` files to ensure packages are\ninstallable in the long term.\n\nApril 2020: We switched to using conda-forge as the primary channel\nfor packages.\n\nThis material was moved from the [lsstsw](https://github.com/lsst/lsstsw) package in December 2018.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flsst%2Fscipipe_conda_env","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flsst%2Fscipipe_conda_env","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flsst%2Fscipipe_conda_env/lists"}