{"id":18766335,"url":"https://github.com/navarr/dependency-annotation","last_synced_at":"2025-04-13T05:32:47.477Z","repository":{"id":46282141,"uuid":"277201807","full_name":"navarr/dependency-annotation","owner":"navarr","description":"A composer command to determine why the codebase shouldn't be updated to a new version of a package, based on the existence of #[Dependency] attributes","archived":false,"fork":false,"pushed_at":"2023-12-21T16:39:48.000Z","size":137,"stargazers_count":9,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-26T22:11:48.150Z","etag":null,"topics":["annotations","composer","composer-plugin","dependency-parser","hacktoberfest","php"],"latest_commit_sha":null,"homepage":"","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/navarr.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":"2020-07-04T23:45:11.000Z","updated_at":"2025-03-09T04:42:42.000Z","dependencies_parsed_at":"2024-11-07T18:47:24.269Z","dependency_job_id":"a8f9a3f2-9a09-48cd-bbd1-59e04124c792","html_url":"https://github.com/navarr/dependency-annotation","commit_stats":{"total_commits":60,"total_committers":3,"mean_commits":20.0,"dds":0.06666666666666665,"last_synced_commit":"8a8535d54aad6657c6321de0874962fff7214ce4"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navarr%2Fdependency-annotation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navarr%2Fdependency-annotation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navarr%2Fdependency-annotation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navarr%2Fdependency-annotation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/navarr","download_url":"https://codeload.github.com/navarr/dependency-annotation/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248670470,"owners_count":21142896,"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":["annotations","composer","composer-plugin","dependency-parser","hacktoberfest","php"],"created_at":"2024-11-07T18:40:19.545Z","updated_at":"2025-04-13T05:32:47.428Z","avatar_url":"https://github.com/navarr.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The #[Dependency] Attribute\n[![Latest Stable Version](http://poser.pugx.org/navarr/dependency-annotation/v)](https://packagist.org/packages/navarr/dependency-annotation)\n[![Total Downloads](http://poser.pugx.org/navarr/dependency-annotation/downloads)](https://packagist.org/packages/navarr/dependency-annotation)\n[![Latest Unstable Version](http://poser.pugx.org/navarr/dependency-annotation/v/unstable)](https://packagist.org/packages/navarr/dependency-annotation)\n[![License](http://poser.pugx.org/navarr/dependency-annotation/license)](https://packagist.org/packages/navarr/dependency-annotation)  \n![Tests](https://github.com/navarr/dependency-annotation/actions/workflows/commit.yml/badge.svg)\n![Code Coverage](https://codecov.io/gh/navarr/dependency-annotation/branch/main/graph/badge.svg?token=BHTKOZZDR3)\n[![Mutation score](https://img.shields.io/endpoint?style=flat\u0026url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Fnavarr%2Fdependency-annotation%2Fmain)](https://dashboard.stryker-mutator.io/reports/github.com/navarr/dependency-annotation/main)\n\nThis project supplies a Composer plugin that adds a command (`why-block`) that interprets a PHP `#[Dependency]`\n attribute.\n\n## How to use the `#[Dependency]` annotation\n\nSimply include a `#[Dependency]` attribute on any attributable target in the following format:\n\n    #[Navarr\\Attribute\\Dependency('package', 'versionConstraint', 'reason')]\n    \nThis FQN may be imported, in which case you can simply use `#[Dependency(...)]`\n\nAll fields except the explanation are mandatory.  Adding an explanation is _highly recommended_, however.\n\n## How to process reasons not to upgrade a composer dependency\n\nIf you are using the `#[Dependency]` annotation thoroughly, and you are having issues updating a composer dependency, you\ncan use the command `composer why-block composer-package version`\n\nThis will output a list of files containing a `#[Dependency]` annotation on composer-package with a version-constraint\n that cannot be fulfilled by the specified version.\n\n## How to install\n\n`composer global require navarr/dependency-annotation`\n\n## Compatibility with v1\n\nFor speed, version 2 automatically excludes the legacy `@dependency` annotation in favor of the PHP8 `#[Dependency]` \nattribute.  While transitioning, you may specify the `-l` or `--include-legacy-annotations` flag to the `why-block` \ncommand to force it to process v1 annotations as well.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavarr%2Fdependency-annotation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnavarr%2Fdependency-annotation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavarr%2Fdependency-annotation/lists"}