-
-
Notifications
You must be signed in to change notification settings - Fork 10.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add initial batch of descriptions (desc stanza) #87436
Conversation
For future reference → to integrate the descriptions from @core-code's file (whose syntax was #!/bin/bash
# read file with descs and parse it line by line,
# extracting the name and var into separate vars
while IFS=$'\t' read -r name desc
do
# in the file named after the name var, find "homepage"
# and prepend a line with the contents of the desc var
perl -p -i -e "s/ homepage/ desc \"$desc\"\n homepage/" "../Casks/$name.rb"
done < "descriptions.tsv" Note that I first had to replace I'll also point out that while this looks deceptively simple, it was the result of a lot of trial and error and trips to StackOverflow (which is why I thought it might be useful to list it here, as it is not trivial.) |
For the record, I wasn't able to run the rubocop checks locally. I first tried in my local fork of this repo, which I had cloned independently of Homebrew, and realized that I then went into Homebrew's internal homebrew-cask repo, added my fork as a remote and checked-out this branch, but then running
That's why this PR will most likely fail the CI checks. I'll fix the style offenses locally once they are reported. |
we actually have some guidelines for these descriptions, but it seems they were not met in about half the cases (often because they come this way from the vendor) ;( a few offenders: • some descriptions mention 'for mac/macOS/OS X' etc. i think this is not necessary, all of them are obviously for mac (there are rare exceptions here where it makes sense to mention this)
|
@reitermarkus Four descriptions are failing the
Given that "macOS" is currently exempted from this rule, I'd assume that iOS and iPhone should too. What about the other two? |
The other two: Reword them. |
@waldyrious, can you rebase this? Homebrew/brew#8328 is finally merged now. |
@reitermarkus Done! Btw, if you could, please take a look at the comment I left above. |
Many are mentioning “macOS” or similar still, should be detected once Homebrew/brew#8557 is merged. |
I've fixed some of these, and will continue working on the rest as time permits — but there are several instances that are legitimate, e.g.:
How should these be handled? |
|
@waldyrious, can you rebase this again? Maybe open another pull request for those that are passing now so we can get those merged and review the remaining ones here. |
Hey @reitermarkus — Thanks for checking in! I've been slowly chipping away at the remaining ones over the past few days. Progress has been slow, but I'll should be able to finish them up today, as I have some more time available. |
@reitermarkus I believe with the last push I fixed the issues for all casks, except for
What would you suggest here? |
Hackintosh patching tool |
Alright, should be ready now :) |
@Homebrew/cask, please skim over this if you have a minute. @waldyrious, one last rebase and this should be good to go unless someone finds anything else that needs changing in the meantime. |
Done! And no worries if further rebases are needed; the conflicts have been pretty easy to fix so far, and most of them have revealed improved versions of the descriptions that this PR initially added. |
one minute doesn't quite cut it at 1300 descriptions :) basically it looks good. ideally there would be stricter guidelines how the descriptions should be worded. all we have to say is:
thats an awful lot of freedom. i think more recommendations would be better to enforce a common style. we basically have 3 types of descriptions at least the last two are interchangeable and could be reduced to one style for consistency. there are still many many in there that mention that something is 'software' or 'an app'. i think this is superfluous. but overall it looks fine as a start, i don't think there is much point in deferring this trying even to make the initial descriptions perfect. we can use them as a start and improve later. some specific ones i've noticed.
shouldn't it be "file sharing"?
shouldn't it be "tool to help search the ...."? |
Yeah, I think the common denominator would be the first style, i.e. the last two could be:
I don't think we can easily enforce this, but an example in the documentation would certainly help not to deviate too far from this style. |
I agree — a single style is more consistent and easier to review and to describe. I actually tried to make this change (away from action-oriented descriptions) to as many entries as I could in the course of working on this PR, but at some point I had to cave in and accept that this batch would contain some less than ideal descriptions as a starting point that the community can then improve upon. By the way, other guidelines I'd suggest (as I mentioned in the opening comment of the PR) are avoiding references to "you"/"your", and avoiding promotional/embellishing language: "smart", "easy", "beautiful", "powerful", "modern", "advanced", etc. These could be easily enforced by maintaining a list of forbidden words (just like we don't allow "macOS" or "OS X" at the moment). But I'd say those adjustments should be part of a separate PR, otherwise this one will never get done :) @core-code I'll make the "file share" → "file sharing" change you pointed out above; the other one is not necessarily incorrect, and indeed both forms feel acceptable to me, but I can change it too if you prefer. |
The bulk of these were contributed by @core-code.
Agreed.
Disagreed only because it requires us to use the word “tool” every time. The third style looks better to me (so far, with limited examples).
Agreed.
Agreed. In general, ban adjectives; descriptions should consist mostly of verbs and nouns: what the app does to what. |
That's a good point. Ideally every program would belong to a known category (e.g. web browser, text editor, music player, etc.) but in practice many of these casks represent very specific needs that don't have a common name, so we are forced to use "tool", "app", "utility", "software", etc. In this light, it does seem that using the action-oriented descriptions has a better shot at providing a universal format without too much gymnastics to adhere to the preferred style. |
Wow! What an undertaking. I counted 1415 casks that were updated as a result of this. Just wanted to say thank you for taking the time to do something like this which could go largely unnoticed, despite being a “quality of life” improvement for anyone who uses one of these. |
Was erroneously given the description of alephone in Homebrew#87436 (4002df8); this matches the descriptions given to M2:D and M:I in Homebrew#88604
Follow-up of #87301 and Homebrew/brew#8137.
I used the list of descriptions provided by @core-code here, and cleaned them up by:
Removing entries that contained no information (e.g.
The main <cask name> repository
,<cask name> desktop app
, etc.)Removing entries not in English:
Shortening long entries to conform to the 80-char limit (although most of them —about 230— were removed altogether, as it would be impractical to manually fix them all)
Removing embellishing language (fast, smart, easy, easiest, simple, beautiful, powerful, modern, advanced...)
Removing A/An and the cask names from the beginning of the descriptions
Replacing action-centric descriptions (
Does foo and bar
) with declarative descriptions (Tool to do foo and bar
)Removing instances of "your"
I also added descriptions to some casks not included in that list.
I'm opening this PR as a draft because the fixes mentioned above haven't been completed. I'd appreciate any help in identifying descriptions in need of such cleanup/improvements, since many of the edits mentioned above are manual tasks that rely on human judgment.
(Of course, we don't have to make all descriptions be perfect from the get-go; as a collaborative, evolving project, anything that we miss in this initial pass can be fixed in later PRs.)