Add API+button to archive a tag
- Dominant language
- PHP
- Stars
- 1.8k
- Forks
- 488
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 32
Description
It was recently identified that Composer consumes high CPU + memory on packages that have a lot of historical tags. See e.g. https://github.com/composer/composer/issues/7577 for some numbers + pointers.
This means the composer+packagist infrastructure has a scalability issue: as time passes, the list of tags per packages grows, and the "Composer experience" degrades. This is significant for `symfony/*` today, and will become also a pain for any other packages over time.
It would be great to just remove old tags from the provider jsons sent to composer (e.g https://repo.packagist.org/p/symfony/security-http.json should not list older tags.)
I think the most flexible way to achieve this would be to allow package authors to mark tags as "archived". If such feature existed, we would use it immediately for all older Symfony tags (e.g. <2.7) and everyone would benefit from it.
The outcome would be that composer could not resolve these old tags when solving dependency graphs. But composer.lock would still work so old projects could still be installed with no issues.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the provider JSON example at repo.packagist.org/p/symfony/security-http.json and the Composer issue linked in the report to understand the scalability and resolution constraints. Define the API and package-author button needed to mark tags as archived, then verify that archived tags are excluded from provider metadata while existing composer.lock files still install.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100