{"id":18654785,"url":"https://github.com/wieni/composer-plugin-patchsets","last_synced_at":"2025-06-13T01:02:02.331Z","repository":{"id":205799778,"uuid":"715009919","full_name":"wieni/composer-plugin-patchsets","owner":"wieni","description":"A PHP Composer plugin to centralize patch management for multiple projects.","archived":false,"fork":false,"pushed_at":"2024-01-19T14:09:59.000Z","size":8,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-25T16:23:42.983Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","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/wieni.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}},"created_at":"2023-11-06T09:53:27.000Z","updated_at":"2023-11-30T08:09:17.000Z","dependencies_parsed_at":"2023-11-10T14:25:59.908Z","dependency_job_id":null,"html_url":"https://github.com/wieni/composer-plugin-patchsets","commit_stats":null,"previous_names":["wieni/composer-plugin-patchsets"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wieni%2Fcomposer-plugin-patchsets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wieni%2Fcomposer-plugin-patchsets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wieni%2Fcomposer-plugin-patchsets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wieni%2Fcomposer-plugin-patchsets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wieni","download_url":"https://codeload.github.com/wieni/composer-plugin-patchsets/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248449791,"owners_count":21105563,"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-07T07:16:35.415Z","updated_at":"2025-04-11T17:31:35.414Z","avatar_url":"https://github.com/wieni.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Composer Plugin Patchsets\n\n## Introduction\n\nThe `wieni/composer-plugin-patchsets` is a PHP Composer plugin designed to address the complexities in managing and applying patches within Drupal projects.  \nThis plugin aims to centralize patch management, enabling a consistent approach to applying patches across multiple projects.\n\n## Problem Statement\n\nCurrent practices utilizing `cweagans/composer-patches` for patch management in projects have introduced several challenges:\n\n- Lack of uniformity in patch application across different projects leads to inconsistencies in behaviors.\n- Difficulty in identifying and applying the same patches when upgrading versions due to variations in patch creation among different projects.\n\n## Objective\n\nThe primary goal of the `wieni/composer-plugin-patchsets` is to enable dependency patch resolution. A feature thas has [been deprecated](https://www.cweagans.net/2023/07/dependency-patch-resolution/) in `cweagans/composer-patches`.\n\n## Functionality\n\nThe plugin leverages the new plugin capabilities released by `cweagans/composer-patches`, allowing it to add patches by registering [a custom Resolver](https://docs.cweagans.net/composer-patches/api/capabilities/). \n\n## Usage\n\n- Create a repository (eg `your-org/drupal-patches`) that contains a `composer.json` with patches defined [as documented by `cweagans/composer-patches`](https://docs.cweagans.net/composer-patches/usage/defining-patches/).\n- Require the `wieni/composer-plugin-patchsets` plugin and your new patch repository (`your-org/drupal-patches`) in your Drupal project.\n- Define the patch repository (`your-org/drupal-patches`) as a patch set in your `composer.json`:\n\n```json\n{\n  \"extra\": {\n    \"patchRepositories\": [\n      \"your-org/drupal-patches\"\n    ]\n  }\n}\n```\n\nThis configuration instructs `wieni/composer-plugin-patchsets` to apply the patches defined in the `your-org/drupal-patches` repository.\n\n## Advanced Configuration\n\nThe plugin supports an advanced configuration allowing the exclusion of specific packages and patches.  \nThis next example demonstrates the exclusion of the \"`#2907810`\" patch for `drupal/core` and all patches for `drupal/field_group`.\n\n```json\n{\n  \"extra\": {\n    \"patchRepositories\": [\n      {\n        \"name\": \"your-org/drupal-patches\",\n        \"excludedPatches\": {\n          \"drupal/core\": [\n            \"#2907810\"\n          ],\n          \"drupal/field_group\": [\"*\"]\n        }\n      }\n    ]\n  }\n}\n```\n\n## Contributing\n\nContributions, suggestions, and issue reports are welcome. Feel free to fork this repository and submit pull requests.\n\n## License\n\nThis project is licensed under the MIT License.\n\n## Acknowledgments\n\n- Acknowledgment of `cweagans/composer-patches` for its pioneering efforts in patch management within Composer.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwieni%2Fcomposer-plugin-patchsets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwieni%2Fcomposer-plugin-patchsets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwieni%2Fcomposer-plugin-patchsets/lists"}