Why this matters
A package that has not seen a commit or a release in a long time raises a fair question: if a security problem is found tomorrow, will anyone fix it? Sometimes the answer is yes and the package is simply stable. Users cannot tell the difference from the outside, so visible activity is how a maintainer shows the package is still in good hands.
This is not about churning out commits. It is about leaving evidence, a few times a year, that someone is paying attention.
What good looks like
- A commit on the default branch within the last three months, or a stable release within the last six months.
- Small, regular signs of life rather than long silences followed by big catch-up work.
How to do it
Release what you have
If there are merged changes on your default branch that were never tagged, tag a release. Users cannot install commits; they install tags. A release is also the clearest sign of life a package can give.
Keep dependencies current
Running an update bot such as Dependabot or Renovate, and merging its pull requests, produces steady and useful activity with little effort. It also keeps the package installable on current PHP and framework versions.
Do the small maintenance tasks
- Add the newest PHP version to your CI matrix and your
composer.jsonconstraint when it is released. - Fix a typo in the docs, close stale issues, refresh the README. Each is a commit.
- Widen the version constraint on a framework you support when a new major comes out.
Stable does not mean silent
If the package is complete and needs no new features, say so in the README, for example "This package is feature complete; releases will be maintenance only". Then still merge dependency updates and CI fixes so the evidence of attention remains.
If you are done, say so
If you no longer intend to maintain the package, marking it abandoned on Packagist is more honest than letting it drift. It tells users to plan a migration instead of guessing.
Things to watch for
- Work on a branch that never reaches the default branch. Activity on a feature branch does not show up as activity on the package.
- Commits without releases for a year or more. People installing through Composer are still getting the old code. Tag a release.
- Pre-releases only. Alpha and beta tags are useful, but a stable release is what most users can actually adopt.
- Changing the default branch without updating Packagist. Packagist follows the branch your repository declares as default. Make sure that is the branch you commit to.