{"id":20884181,"url":"https://github.com/conda-incubator/conda-tree","last_synced_at":"2025-12-11T21:04:05.322Z","repository":{"id":41128693,"uuid":"90068685","full_name":"conda-incubator/conda-tree","owner":"conda-incubator","description":"conda dependency tree helper","archived":false,"fork":false,"pushed_at":"2024-11-20T16:24:32.000Z","size":61,"stargazers_count":167,"open_issues_count":1,"forks_count":14,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-06-04T17:25:04.771Z","etag":null,"topics":["conda","dependency-manager"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/conda-incubator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2017-05-02T19:09:43.000Z","updated_at":"2025-06-01T10:35:00.000Z","dependencies_parsed_at":"2025-01-18T17:11:51.398Z","dependency_job_id":"9561ccdd-5a7b-4e4f-ab9a-cc5f51b2c35a","html_url":"https://github.com/conda-incubator/conda-tree","commit_stats":{"total_commits":31,"total_committers":6,"mean_commits":5.166666666666667,"dds":"0.25806451612903225","last_synced_commit":"73b68abb14bd6603d0efca72cd3af5e946db48f5"},"previous_names":["rvalieris/conda-tree"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/conda-incubator/conda-tree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conda-incubator%2Fconda-tree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conda-incubator%2Fconda-tree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conda-incubator%2Fconda-tree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conda-incubator%2Fconda-tree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/conda-incubator","download_url":"https://codeload.github.com/conda-incubator/conda-tree/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conda-incubator%2Fconda-tree/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270820793,"owners_count":24651534,"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","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["conda","dependency-manager"],"created_at":"2024-11-18T08:09:19.904Z","updated_at":"2025-12-11T21:04:00.275Z","avatar_url":"https://github.com/conda-incubator.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## conda-tree\n\nconda dependency tree helper\n\n## Install\n\n```bash\nconda install -c conda-forge conda-tree\n```\n  \n  \nIf you're using python 3.9 you might have to run:\n```bash\nconda install -c conda-forge conda-tree 'networkx\u003e=2.5'\n```\nto make sure the right networkx version is installed.\n\n## Conda sub-command\n\nWhen conda-tree is installed on the base environment, you can use the \"tree\" sub-command from any env:\n\n```bash\n# normal usage\n(base) $ conda tree leaves\npackage-1\npackage-2\n\n# activate another env\n(base) $ conda activate env2\n\n# no need to install conda-tree on env2\n(env2) $ conda tree leaves\npackage-x\npackage-y\n```\n\n## Features\n\n### Query the dependency tree\n\n```bash\n# packages that no other package depends on\n$ conda-tree leaves\nsamtools\nbcftools\netc\n\n# dependencies of a specific package\n$ conda-tree depends samtools\ncurl\nxz\nlibgcc\nzlib\n\n# which packages depend on a specific package\n$ conda-tree whoneeds xz\nsamtools\nbcftools\nhtslib\npython\n\n# dependency cycles\n$ conda-tree cycles\npip -\u003e python -\u003e pip\npip -\u003e wheel -\u003e python -\u003e pip\n```\n\n### Dependencies in tree form\n\n```bash\n# dependencies in a tree form\n# (redundancies are hidden by default)\n$ conda-tree depends -t sqlite\nsqlite==3.29.0\n  ├─ ncurses 6.1 [required: \u003e=6.1,\u003c6.2.0a0]\n  │  └─ libcxx 8.0.1 [required: \u003e=4.0.1]\n  │     └─ libcxxabi 8.0.1 [required: 8.0.1, 0]\n  └─ readline 8.0 [required: \u003e=8.0,\u003c9.0a0]\n     └─ ncurses 6.1 [required: \u003e=6.1,\u003c6.2.0a0]\n        └─ dependencies of ncurses displayed above\n\n# full dependency tree\n$ conda-tree deptree --full\nneovim==0.3.1\n  ├─ pynvim 0.3.2 [required: any]\n  │  ├─ greenlet 0.4.15 [required: any]\n  │  │  └─ python 3.7.3 [required: \u003e=3.7,\u003c3.8.0a0]\n  │  │     ├─ bzip2 1.0.8 [required: \u003e=1.0.6,\u003c2.0a0]\n  │  │     ├─ libcxx 8.0.1 [required: \u003e=4.0.1]\n  │  │     │  └─ libcxxabi 8.0.1 [required: 8.0.1, 0]\n  │  │     ├─ libffi 3.2.1 [required: \u003e=3.2.1,\u003c3.3.0a0]\n...\nconda-tree==0.0.4\n  ├─ conda 4.7.11 [required: any]\n  │  ├─ conda-package-handling 1.4.1 [required: \u003e=1.3.0]\n  │  │  ├─ libarchive 3.3.3 [required: \u003e=3.3.3]\n  │  │  │  ├─ bzip2 1.0.8 [required: \u003e=1.0.6,\u003c2.0a0]\n...\n```\n\n### Query another env\n\n```bash\n# query by path\n$ conda-tree -p /conda/envs/trinity leaves\ntrinity\n\n# query by name\n$ conda-tree -n trinity leaves\ntrinity\n```\n\n### Query package files\n\n```bash\n# find which package owns a file\n$ conda-tree -n graphviz who-owns bin/dot\ngraphviz bin/dot\ngraphviz bin/dot2gxl\ngraphviz bin/dot_builtins\n\n# find dangling files that aren't owned by any package\n$ conda-tree -n base unowned-files\n/conda/LICENSE.txt\n\n$ conda-tree -n graphviz unowned-files\n/conda/envs/graphviz/var/cache/fontconfig/b67b32625a2bb51b023d3814a918f351-le64.cache-7\n/conda/envs/graphviz/var/cache/fontconfig/f93dd067-84cf-499d-a5a8-645ff5f927dc-le64.cache-7\n/conda/envs/graphviz/var/cache/fontconfig/923e285e415b1073c8df160bee08820f-le64.cache-7\n/conda/envs/graphviz/fonts/.uuid\n```\n\n### Generate a minimal set of packages to re-create the env\n\n```bash\n# can be used to re-create a env with conda create -n \u003cnew-env\u003e --file \u003cdep-file\u003e\n$ conda-tree -n graphviz leaves --export\nconda-forge::graphviz=2.48.0=h85b4f2f_0\n```\n\n### Generate a graph of the dependency tree\n\n```bash\n# export a graphviz dot notation file of the dependencies tree\n$ conda-tree deptree --dot \u003e file.dot\n$ conda-tree depends \u003cpackage\u003e --dot \u003e file.dot\n$ conda-tree whoneeds \u003cpackage\u003e --dot \u003e file.dot\n\n# then render to pdf with graphviz's dot tool\n$ dot -Tpdf file.dot -o tree.pdf\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconda-incubator%2Fconda-tree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconda-incubator%2Fconda-tree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconda-incubator%2Fconda-tree/lists"}