{"id":18510681,"url":"https://github.com/operator-framework/deppy","last_synced_at":"2025-04-09T04:33:19.408Z","repository":{"id":37898034,"uuid":"459659162","full_name":"operator-framework/deppy","owner":"operator-framework","description":"Deppy: The dependency resolver for Kubernetes","archived":true,"fork":false,"pushed_at":"2025-01-21T10:29:19.000Z","size":278,"stargazers_count":16,"open_issues_count":10,"forks_count":22,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-03-25T05:03:09.751Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/operator-framework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.MD","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-15T16:27:25.000Z","updated_at":"2025-01-28T16:30:46.000Z","dependencies_parsed_at":"2023-02-14T08:31:05.492Z","dependency_job_id":"20a62570-3c4d-4c33-88ce-8a92a6db8f20","html_url":"https://github.com/operator-framework/deppy","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operator-framework%2Fdeppy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operator-framework%2Fdeppy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operator-framework%2Fdeppy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operator-framework%2Fdeppy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/operator-framework","download_url":"https://codeload.github.com/operator-framework/deppy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247980833,"owners_count":21027803,"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-06T15:24:24.846Z","updated_at":"2025-04-09T04:33:18.810Z","avatar_url":"https://github.com/operator-framework.png","language":"Go","readme":"# deppy\n\n[![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html)\n[![Go Report Card](https://goreportcard.com/badge/github.com/operator-framework/deppy)](https://goreportcard.com/report/github.com/operator-framework/deppy)\n[![Slack Channel](https://img.shields.io/badge/chat-4A154B?logo=slack\u0026logoColor=white \"Slack Channel\")](https://kubernetes.slack.com/archives/C038B7MF75M)\n\nDeppy: The dependency resolver for Kubernetes\n\n## Introduction\n\nDeppy is a Kubernetes API that runs on- or off-cluster for resolving constraints over catalogs of\n[RukPak](https://github.com/operator-framework/rukpak) bundles.\nDeppy is part of the next iteration of OLM and was first introduced\n[here](https://hackmd.io/upiNuoeJTwqNKQJCVMZADw).\nThe initial goal of the project is to remove the dependency manager from the\n[Operator Lifecycle Manager](https://github.com/operator-framework/operator-lifecycle-manager)\n(OLM) and make it its own generic component.\n\n### Concepts\n\nWithin the context of a package manager, there are a set of expectations from the\nuser that the package manager should never:\n\n- install a package whose dependencies cannot be fulfilled or that conflict with\nanother package's dependencies\n- install a package whose constraints cannot be met by the current set of installable packages\n- update a package in a way that breaks another that depends on it\n\nThe job of a resolver, given a set of entities to install and the constraints for\neach those entities, is to identify whether or not those entities are compatible.\nIn the case of Deppy, those entities can be things that are intended to be installed\n(e.g. bundles) or default global constraints. The constraints for an entity define any\ndependencies the entity has or any other requirement for the entity, for example\na version to pin the entity to.\n\n#### Examples\n\n##### Successful Resolution\n\nThe user would like to install packages A and B that have the following dependencies:\n\n```mermaid\ngraph TD\n A[A v0.1.0] --\u003e C[C v0.1.0]\n B[B latest] --\u003e D[D latest]\n```\n\nAdditionally, the user would like to pin the version of A to v0.1.0.\n\n**Entities and Constraints passed to Deppy**\n\nEntities:\n\n- A\n- B\n\nConstraints:\n\n- A v0.1.0 depends on C v0.1.0\n- A pinned to version v0.1.0\n- B depends on D\n\n**Deppy Output**\n\nResolution Set:\n\n- A v0.1.0\n- B latest\n- C v0.1.0\n- D latest\n\n##### Unsuccessful Resolution\n\nThe user would like to install packages A and B that have the following dependencies:\n\n```mermaid\ngraph TD\n A[A v0.1.0] --\u003e C[C v0.1.0]\n B[B latest] --\u003e D[C v0.2.0]\n```\n\nAdditionally, the user would like to pin the version of A to v0.1.0.\n\n**Entities and Constraints passed to Deppy**\n\nEntities:\n\n- A\n- B\n\nConstraints:\n\n- A v0.1.0 depends on C v0.1.0\n- A pinned to version v0.1.0\n- B latest depends on C v0.2.0\n\n**Deppy Output**\n\nResolution Set:\n\n- Unable to resolve because A v0.1.0 requires C v0.1.0, which conflicts with\nB latest requiring C v0.2.0\n\n## Contributing\n\nThe Deppy project is community driven and is part of the broader\nKubernetes ecosystem. New contributors are welcome and\nhighly encouraged. See the [contributing guidelines](CONTRIBUTING.md) to get started.\n\nThis project uses GitHub issues and milestones to prioritize and keep track of\nongoing work. To see the current state of the project, checkout the\n[open issues](https://github.com/operator-framework/deppy/issues) and\n[recent milestones](https://github.com/operator-framework/deppy/milestones).\n\n## Getting Started\n\n### Installation\n\n*How to install this project*\n\n### Quickstart\n\n*How to quickly get started with this project*\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperator-framework%2Fdeppy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foperator-framework%2Fdeppy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperator-framework%2Fdeppy/lists"}