[RFC][UI] Add more package details to package list - #1826
Conversation
composer.lockPackage changes
Settings · Docs · Powered by Private Packagist |
|
I'm not sure this really adds so much value or just wastes screen real estate and search index space:
This is mainly why these issues are still open, because I don't know what to do about them :) |
Show latest version, release date and license under the description on the package listings (user packages, explore/popular, vendor pages, dependents, etc.) and, npm-style, the keyword tags. The listing macro pulls the data from a new PackageRepository::getPackagesLatestReleaseMetadata() plus the existing tag lookup, wired through Controller::getPackagesMetadata(). The download/star counters are vertically centered against the taller left column. The Algolia search results get the same treatment: the index build now stores meta.release / meta.released / meta.license, and the hit template renders them alongside the tags. Upgrade the Algolia clients while here: algolia/algoliasearch-client-php 3.4 -> 4.x drops the initIndex()/SearchIndex layer, so every call now passes the index name (searchSingleIndex, saveObjects, deleteObject, clearObjects, setSettings). Adapted Algolia, ResultTransformer, IndexPackagesCommand, CleanIndexCommand, ConfigureAlgoliaCommand, PackageManager, the DI factory and AlgoliaMock. v4's SearchClient::create() rejects an empty appId at construction, so the test service now gets dummy credentials. algoliasearch 4 -> 5 and instantsearch.js 4.75 -> 4.112: switch to the v5 liteClient import. The search hit template is now a Preact JSX component (PackageHit) instead of an HTML string; added preact as an explicit dep and bumped the esbuild target to a baseline that keeps the v5 bundle's async generators (esbuild 0.15 cannot downlevel them further).
89df1b2 to
8d06575
Compare
|
Hi, I think this redesign makes sense. However, tags seem to use space for no added value. |
|
Why is it useful to you? What does this tell you? |
|
It is a triage signal. When you're comparing several packages in a list, opening each one just to check "is this still maintained?" doesn't scale. Last release date lets you filter out abandoned packages in seconds. Same reason npm, PyPI and every other major registry surface it right on the listing. |
|
Ok but as per my comment above:
So I'd say maybe showing And also easier to scan than distinguishing which is the newer of many exact dates. I see npm has relative dates which is also more readable than plain dates, but still I'd argue this might nudge you the wrong way just because by chance something was released shortly and another not for 6months because it's very stable. |
|
I agree that the release date is not the only parameter we should look at as there are plenty of solid packages which do not require constant updates ( Considering all above, and conserving the screen space, what do you think about revering the package list changes but keeping only the search filter/facets to allow users filtering by license and approximate latest release date? Once this change is deployed and packages are re-indexed, we can always revisit this in the future and modify the UI as needed. Edit: We could also expose Aikido maintainability score, if that's possible - this parameter takes into account multiple variables and produces an easy to understand number. We won't need to re-invent the wheel. |

Package listings (a user's packages, explore/popular, vendor pages, dependents) and Algolia search results now show npmjs-inspired details:
Adds filters for release date and licence:
Download/star counters are vertically centered:
Caveats
Search records only expose the new
meta.release/released/licenseafter their next indexing run; the hit template guards on it, so stale records render as before. A fullpackagist:index --forcebackfills everything.bin/console algolia:configurerequired for the newmeta.licensefacet. The released numeric filter needs no settings change (Algolia allows numeric filtering on any numeric attribute).Algolia client upgraded: PHP
algolia/algoliasearch-client-php3 -> 4 (API rewrite - index name now passed per call) and JSalgoliasearchv4 -> v5 /instantsearch.js-> v4.112.The search hit template moves to Preact JSX (
search.jsbecomessearch.jsx), withpreactdeclared explicitly and the esbuild target raised for v5's async generators.V4's client rejects an empty appId, so .
envAlgolia keys are nowchangemeplaceholders and .env.testcarries dummy values (real values still come from.env.local/ deploy env).Replaces #1410
Somewhat fixes #1290 and fixes #1368