GNOME Bugzilla – Bug 759527
Add support for reviews
Last modified: 2016-02-18 17:04:35 UTC
User reviews are a common and useful method for grading applications. Users are able to give a star rating to an application and write a short amount of text to let other know what is good/bad about it. A central server is required to store the review information so it can be shared. I think it would be useful for GNOME Software to support reviews.
Created attachment 317473 [details] [review] Prototype reviews system This is a prototype patch showing basic review support in GNOME Software 3.18. It uses the Ubuntu reviews server [1] to access review information. This patch adds the following: - A new GsAppReview object that can be added to GsApp - UI to show these reviews on the details page - An Ubuntu reviews plugin that downloads reviews from reviews.ubuntu.com Review information that is shown: - Rating - Author - Date - Review summary, text [1] http://launchpad.net/rnr-server
Work that would be required for feature parity with the existing review support in Ubuntu Software Center: - Posting of reviews (requires Ubuntu One account) - Review usefulness rating (i.e. "6/8 people found this review useful" - this can be used to sort reviews). - Language filters (to only show reviews in your language) - Flagging of reviews is inappropriate / offensive
Elaborating on the Ubuntu One account support: - This would have to be added to GNOME Online Account as it is not a currently supported account type (UI support could be added into GNOME Software but this doesn't seem desirable). - However, Ubuntu (and other OSs) use libaccounts, not GOA (but Ubuntu GNOME does use GOA). So it is highly desirable to support both systems so it can work on multiple places. Is an (optional) dependency on libaccounts seen as an issue?
Also worth considering - the interaction with the simple rating for each application. With a full review system this is calculated from the review information. I think there'd be some advantages in refactoring / enhancing the simple rating into review stats that are more tightly coupled with the review system. For example - it is worth showing a histogram of reviews (i.e. how many one star, two star reviews etc) as this gives more information than a simple average. Any opposition to this?
Created attachment 317475 [details] Screenshot of reviews in GNOME Software
Before we can bring in stars for user ratings, we need to complete the removal of the current stars in the ui. Since this other distros don't have server infrastructure for reviews, this would have to be somewhat optional - can all the review functionality be provided by a plugin ? I guess the UI parts will just remain hidden if there are no reviews attached to a GsApp ?
Yes, I think all the review functionality can be provided in a plugin. All the current UI elements seem to exist and are just optionally populated with data from the plugins. If there's a desire to have installs that have no ratings at all, we'd need a new system for the plugin to indicate that it provides rating data and those elements should be shown.
Note that rnr-server is open source and could be run by other distributions. There's also an 'origin' field in the reviews that could potentially be used by other distributions using the Ubuntu server. I was told that was considered when it was first designed.
I'm developing this feature on the wip/rancell/ubuntu-reviews-3.18 git branch.
Created attachment 319878 [details] [review] Add support for reviews This is a (mostly) working patch that allows you to see and post reviews on an Ubuntu system. It's ready for review for UI and that the structure matches what is expected in GNOME Software.
Created attachment 319899 [details] [review] Add support for reviews Split previous patch into two - the review UI / API and the Ubuntu plugin.
Created attachment 319900 [details] [review] Add an Ubuntu review plugin
Created attachment 319903 [details] [review] Add support for reviews Fixed hack that posted reviews using the rating stars - add a button instead so this doesn't conflict.
Created attachment 320469 [details] [review] Add support for reviews Updated with fixes as requested by Richard. You said "*.css: i don't think we specify fonts in px values; i think it needs to be as a percentage to make scaling work correctly". I haven't changed these as these are copied from the other titles, i.e. .application-details-title { font-weight: bold; font-size: 14px; } ... .application-reviews-title { font-weight: bold; font-size: 14px; } So I thought the title for the reviews should be the same as the details which is why it's specified in pixels.
Created attachment 320470 [details] Screenshot of reviews in GNOME Software Updated for master
Created attachment 320471 [details] [review] Add an Ubuntu review plugin
I was asked to provide some design guidance on this. I've come up with some mockups which provide some guidance on what would be desirable in terms of UI: https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/software/version%203/app-page.png Every aspect of these mockups isn't absolutely necessary for the feature to land, of course: the bars for the ratings aren't essential, for example. Some things that it might be nice to have improved though: * The placement of the reviewer name isn't very neat in the screenshots provided above. It would be nicer to have it consistently aligned, possibly below the star ratings. * The post review dialog could be better (at least judging from the screenshot I've seen): it should have a cancel button in the header bar, and no close button. The action button should be labelled "Post" (or possibly "Submit"), not "Post Review". The review box seems to be missing a border. * It would be nice to have some more vertical padding between the write review button and the first review below.
Created attachment 320667 [details] [review] Add support for reviews Updated to match design and class renames as requested by Richard.
Created attachment 320669 [details] [review] Add an Ubuntu review plugin Updated to work with API changes.
Awesome work Allan, thanks! One question on the design: If you have already written a review, does the "Write a Review" button still show? Does it show the review dialog with your existing review? It feels a bit odd to me, what I suggest instead is: - If you made a review then hide the "Write a Review" button. - Show an "Edit Review" button below your own review. - Either have a second button to delete (could just use a rubbish bin icon to save space) or put it inside the edit review dialog. I think deleting reviews is probably not a common use-case. If someone has made a mistake then they probably want to correct it rather than delete.
Another design question: In Ubuntu some applications have a huge number of reviews (e.g. 229 for simple-scan). In Ubuntu Software Center, we only show the first page of reviews (10) and then have a "Show more" button that appends more reviews to the list. The intention is the reviews are ordered in terms of usefulness. Any further thoughts on this design?
And for interest - the most rated package is vlc with 2048 reviews.
Also worth considering for design - reviews have a language they are associated with. By default, it's probably appropriate to only show reviews in the language your system is configured for. There may be cases where it's appropriate to show all reviews (Ubuntu Software Center had this feature). For example, if your language currently has no reviews or the the reviews don't look like the average rating then you might want to see what languages are rating it highly / lowly. You may also speak more than one language.
I have the histogram and review totals working on the wip/rancell/reviews branch but will wait for the first patch to get in.
Created attachment 320681 [details] [review] Show a histogram showing reviews per rating and the total reviews
Created attachment 320760 [details] [review] Add an Ubuntu review plugin Updated Ubuntu plugin now review support is in master.
Created attachment 320761 [details] [review] Add an Ubuntu review plugin Last one missed a commit.
Let's call this done - I've opened bug 761845 for the Ubuntu plugin work.
(In reply to Robert Ancell from comment #20) ... > It feels a bit odd to me, what I suggest instead is: > - If you made a review then hide the "Write a Review" button. > - Show an "Edit Review" button below your own review. > - Either have a second button to delete (could just use a rubbish bin icon > to save space) or put it inside the edit review dialog. I think deleting > reviews is probably not a common use-case. If someone has made a mistake > then they probably want to correct it rather than delete. Sounds good to me. The only change I'd make is to show the edit button next to the review itself, rather than turning "write a review" into "edit review". (In reply to Robert Ancell from comment #21) > Another design question: > > In Ubuntu some applications have a huge number of reviews (e.g. 229 for > simple-scan). In Ubuntu Software Center, we only show the first page of > reviews (10) and then have a "Show more" button that appends more reviews to > the list. The intention is the reviews are ordered in terms of usefulness. > Any further thoughts on this design? Also sounds good - I had that behaviour in mind too. I've updated the mockups with these changes.
(In reply to Robert Ancell from comment #23) > Also worth considering for design - reviews have a language they are > associated with. By default, it's probably appropriate to only show reviews > in the language your system is configured for. There may be cases where it's > appropriate to show all reviews (Ubuntu Software Center had this feature). > For example, if your language currently has no reviews or the the reviews > don't look like the average rating then you might want to see what languages > are rating it highly / lowly. You may also speak more than one language. I'm not so sure about this. How is it helpful to see reviews in languages you don't understand? If you speak more than one language, you'd have to dig through all of them to find the ones that are relevant to you - not a great experience.
(In reply to Allan Day from comment #30) > (In reply to Robert Ancell from comment #23) > > Also worth considering for design - reviews have a language they are > > associated with. By default, it's probably appropriate to only show reviews > > in the language your system is configured for. There may be cases where it's > > appropriate to show all reviews (Ubuntu Software Center had this feature). > > For example, if your language currently has no reviews or the the reviews > > don't look like the average rating then you might want to see what languages > > are rating it highly / lowly. You may also speak more than one language. > > I'm not so sure about this. How is it helpful to see reviews in languages > you don't understand? If you speak more than one language, you'd have to dig > through all of them to find the ones that are relevant to you - not a great > experience. I think the important thing is to resolve the disconnect between the total review count and the number of reviews you can see. e.g. If I look at simple-scan and it says "***** (229)" and the histogram shows 229 reviews but I only see 1 (because I speak an obscure language) then I'm going to be confused. A solution could be a label at the bottom that says something like: "228 more reviews in other languages" Which could potentially expand to show those reviews if clicked on.
(In reply to Robert Ancell from comment #31) ... > I think the important thing is to resolve the disconnect between the total > review count and the number of reviews you can see. > > e.g. If I look at simple-scan and it says "***** (229)" and the histogram > shows 229 reviews but I only see 1 (because I speak an obscure language) > then I'm going to be confused. > > A solution could be a label at the bottom that says something like: > "228 more reviews in other languages" I'd be fine with that. > Which could potentially expand to show those reviews if clicked on. This is the part I'm less sure about (for the reasons stated previously)...