{"id":15764660,"url":"https://github.com/ctf0/packagechangelog","last_synced_at":"2025-07-11T01:10:01.249Z","repository":{"id":25212155,"uuid":"103462384","full_name":"ctf0/PackageChangeLog","owner":"ctf0","description":"Show Package Changelog On Composer Install/update","archived":false,"fork":false,"pushed_at":"2025-05-31T07:35:26.000Z","size":165,"stargazers_count":16,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-01T14:47:52.676Z","etag":null,"topics":["changelog","composer","laravle","notifications","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/ctf0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"ctf0"}},"created_at":"2017-09-13T23:35:34.000Z","updated_at":"2025-05-31T07:35:29.000Z","dependencies_parsed_at":"2024-06-18T18:40:34.032Z","dependency_job_id":null,"html_url":"https://github.com/ctf0/PackageChangeLog","commit_stats":{"total_commits":54,"total_committers":4,"mean_commits":13.5,"dds":0.4629629629629629,"last_synced_commit":"6bcc36649a80e10fb83353f0e52340145eb7c654"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/ctf0/PackageChangeLog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctf0%2FPackageChangeLog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctf0%2FPackageChangeLog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctf0%2FPackageChangeLog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctf0%2FPackageChangeLog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ctf0","download_url":"https://codeload.github.com/ctf0/PackageChangeLog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctf0%2FPackageChangeLog/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264703216,"owners_count":23651922,"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":["changelog","composer","laravle","notifications","php"],"created_at":"2024-10-04T12:04:23.165Z","updated_at":"2025-07-11T01:10:01.242Z","avatar_url":"https://github.com/ctf0.png","language":"PHP","funding_links":["https://github.com/sponsors/ctf0"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n    PackageChangeLog\n    \u003cbr\u003e\n    \u003ca href=\"https://packagist.org/packages/ctf0/package-changelog\"\u003e\u003cimg src=\"https://img.shields.io/packagist/v/ctf0/package-changelog.svg\" alt=\"Latest Stable Version\" /\u003e\u003c/a\u003e \u003ca href=\"https://packagist.org/packages/ctf0/package-changelog\"\u003e\u003cimg src=\"https://img.shields.io/packagist/dt/ctf0/package-changelog.svg\" alt=\"Total Downloads\" /\u003e\u003c/a\u003e\n\u003c/h1\u003e\n\nusually when a package gets updated, the package owner could possibly add/change/remove something from the configuration file,\nor could add a new feature that he/she didn't have time to add to the read me yet,\nor for whatever reason that could potentially effect how the user consume the package.\n\nTherefor **PackageChangeLog** was made, to help developers keep their packages as user friendly as possible and keep the users up-to-date with new changes as releases gets published.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/7388088/30776152-e2be70d6-a0a1-11e7-9793-0584a5ecb9f8.png\"\u003e\n\u003c/p\u003e\n\n## Installation\n\n- `composer require ctf0/package-changelog`\n- after installation, package will auto-register the below to `composer.json`\n    + check [composer docs](https://getcomposer.org/doc/articles/scripts.md#what-is-a-script-) for more info\n\n    ```json\n    \"scripts\": {\n        \"post-install-cmd\": [\n            \"@php artisan pcl:post-install\"\n        ],\n        \"post-update-cmd\": [\n            \"@php artisan pcl:post-update\"\n        ]\n    }\n    ```\n\n\u003cbr\u003e\n\n## Upgrading to v2\n\n- remove `'App\\\\Providers\\\\EventServiceProvider::postAutoloadDump'` from `composer.json`\n- remove\n\n    ```php\n    /**\n    * \"ctf0/package-changelog\".\n    */\n    public static function postAutoloadDump(\\Composer\\Script\\Event $event)\n    {\n       if (class_exists('ctf0\\PackageChangeLog\\Ops')) {\n           return \\ctf0\\PackageChangeLog\\Ops::postAutoloadDump($event);\n       }\n    }\n    ```\n\n    from `app\\Providers\\EventServiceProvider`\n- clear the cache `php artisan cache:clear`\n\n\u003cbr\u003e\n\n## Usage\n\n- inside your **\"package\"** composer.json\n    + add the package as a dependency\n    + add `\"changeLog\": \"log_folder_name\"` to extra\n\n    ```js\n    \"require\": {\n        // ...\n        \"ctf0/package-changelog\": \"^2.0\"\n    },\n    \"extra\": {\n        // ...\n        \"changeLog\": \"logs\"\n    }\n    ```\n\n- inside that folder add the log files\n    - install `post-install-cmd`\n    \u003e if you want to show a log on installation only, then add a file name `install.txt` and we will display it only when the package gets installed for the first time.\n\n    | release tag | log file name |\n    | ----------- | ------------- |\n    | *           | install.txt   |\n\n    - update `post-update-cmd`\n    \u003e the version have to be equal \"==\" to the release tag because we check against that version b4 showing the log.\n    \u003e\n    \u003e this is useful in-case you didn't add a changeLog for the current published version.\n\n    | release tag | log file name |\n    | ----------- | ------------- |\n    | v1.0.0      | v1.0.0.txt    |\n\n\u003cbr\u003e\n\n## Uninstall\n\n- for whatever reason you decided to remove the package, make sure to remove all the package scripts under `composer.json` before uninstall\n\n```json\n\"scripts\": {\n    \"post-install-cmd\": [\n        \"@php artisan pcl:post-install\"\n    ],\n    \"post-update-cmd\": [\n        \"@php artisan pcl:post-update\"\n    ]\n}\n```\n\n## Notes\n\n- we don't use any parser for the log file, so whatever you write in the file will be displayed to the user as it is.\n- This is more of a **utility** package directed towards developers \u0026 to get the best of it you have to add it to your package, however to test it you can install it like any other package \u0026 you would get a message like the screenshot above.\n\n\u003cbr\u003e\n\n### Security\n\nIf you discover any security-related issues, please email [ctf0-dev@protonmail.com](mailto:ctf0-dev@protonmail.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctf0%2Fpackagechangelog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fctf0%2Fpackagechangelog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctf0%2Fpackagechangelog/lists"}