composer / packagist

Package Repository Website - try https://packagist.com if you need your own -
https://packagist.org/
MIT License
1.75k stars 475 forks source link

Improve /packages/ index page #90

Closed Seldaek closed 11 years ago

Seldaek commented 12 years ago

This should show something like:

10 random packages 10 newest packages 10 most recently updated packages 10 popular packages (but we'd need metrics for that, which we don't have right now)

Also there should be RSS feeds for newest and most updated packages.

stof commented 12 years ago

Just to avoid duplicate work, I started evaluating the different feed bundles out there to see what can be used for packagist (I don't want to use a crappy one and there is many out there)

Seldaek commented 12 years ago

I have a good ol' PHP class that does a good job of it otherwise. Don't know what's out there, but for simple feeds you don't need so much.

stof commented 12 years ago

@Seldaek can you gist it so that I can compare it with the other stuff I look at ?

stof commented 12 years ago

btw, what should we put in the RSS feed ? packages or versions (using the Packagist entity names, not the Composer naming here)

Seldaek commented 12 years ago

Sure https://gist.github.com/1854536 - it's really old I just added namespace on top of it and boom, probably could use a bit of brushing up ;)

Seldaek commented 12 years ago

I guess new versions for updates, package (show latest version) for "new packages" feed.

andrewtch commented 12 years ago

Some time ago I've mailed @Seldaek about navigation improvements, and these would be just additional browsing modes - like browse all packages, view vendors (what else JMS has apart of Serializer) and tags (what are current 'ORM') solutions?

There's no sense of having 'random' packages, I suppose.

Btw, there's an empty space on top bar, left side - what about putting it all there - like: All | New | Updates | Tags | Authors?

stof commented 12 years ago

@andrewtch viewing the different JMS packages is already possible. And for tags, use the search. It is also what they are for

andrewtch commented 12 years ago

you see no author/tag list, that's what i meant. Compare with http://knpbundles.com/developer .

atodorov commented 12 years ago

Hi guys, what's the status of this issue? I don't see any progress.

New packages feed: name+version (version is optional) Updated packages feed: name+version

See how others are doing it (recently updated packages): http://pypi.python.org/pypi?:action=rss http://search.npmjs.org/api/_design/app/_rewrite/-/rss?descending=true&limit=50 https://rubygems.org/api/v1/activity/just_updated.json https://metacpan.org/feed/recent?f=l http://pear.php.net/feeds/latest.rss

Seldaek commented 12 years ago

I'll work on something during the summer, until now I was focusing more on getting composer to work well.

andrewtch commented 12 years ago

@Seldaek , i can do something about in a week, do you mind?

Seldaek commented 12 years ago

@andrewtch if you have time you can, but it's most likely gonna change a lot in the future. An RSS feed for the last created packages would be cool to have already though.

rdohms commented 12 years ago

Ok, during a talk at PFCongres with @naderman and @enygma i vowed to pick this one up.

Going to start looking into it this week, so I would appreciate to know if either anyone else has picked it up, or if there are any considerations to take into evaluation.

@Seldaek I'm gonna take a look at your class but i have hear of recommendations for Zend/Feed in IRC, it gives is the option of RSS and Atom without any extra work. Do you think there is need for caching or generating static file to avoid the server being bashed too much? Or just straight forward feed output?

I'm also going to look at the feeds cited above to make a proposal of format/data and maybe different feeds, ideas are welcome.

rdohms commented 12 years ago

Well I should be clear, i'm going to implement the feeds. Then i can see if we can tackle the homepage stuff.

rdohms commented 12 years ago

This is a writeup of the feeds that will be available to Packagist users, how they will be formed and what their content will be. Each feed will list 40 items, this is an average from most of the sites I looked at an it sounds like a good number. I will leave this configurable.

If you disagree with anything in this, please let me know.

Url structure

/feed/<feed name>[.<filter>].<format>

<feed name> - keyword name attributed below <filter> - will be used for vendor filtering <format> - rss or atom

Feeds

Data

Each feed entry should represent the following data

Caching

No internal caching will be done, we will rely on Varnish caching the feed. I'm looking into the exact headers to guarantee they are in place, any tips are welcome.

rdohms commented 12 years ago

@Seldaek / @stof / @naderman feedbacks on above?

Seldaek commented 12 years ago
rdohms commented 12 years ago

@Seldaek ok, i'll make the changes to the url.

Yeah, popular is not gonna make it, i noticed the limitations while implementing it this weekend. I'll see what i can do about ommiting the versions in new packages.

I think dev versions should still show up, most packages are not stable yet and still very usable.

I'll make tweaks and send a first draft PR later today/tomorrow, we can iterate over there then.

kaiwa commented 11 years ago

Possibility of sorting /packages by no. of downloads would be really cool and shouldn't be much effort

stof commented 11 years ago

@kaiwa it is, because the number of downloads is stored in Redis, not in the MySQL DB.

kaiwa commented 11 years ago

@stof Ah ok, too bad. Packagist could be a good place to check for the latest components if it would show popular/latest/trending packages... package app store ;-)