unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Improving browsing and discoverability in the Packages Menu
@ 2015-02-15 22:38 Artur Malabarba
  2015-02-16  2:25 ` Stefan Monnier
                   ` (2 more replies)
  0 siblings, 3 replies; 37+ messages in thread
From: Artur Malabarba @ 2015-02-15 22:38 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1060 bytes --]

The package menu is fantastic when you know what you're looking for. You
just search for the package name or for a phrase, and you're likely to find
it.

It's not that great when you just want to browse, specially if you have
Melpa and Marmalade configured, simply because the menu is overwhelming. A
few items that stand out to me:

1. The package list is ginormous and growing.
2. There are duplicate entries galore.
3. There's no useful sense of categories. (we have keywords,but see below).
4. Are there other points that people feel can be improved?

I can see myself writing something to improve 2.

Any solution for 3 would also be a solution for 1, but I'm not sure what
that would be.

Also regarding 3: We have keywords but they are not the same thing as
categories.
I'm not saying we should come up with yet another classification, but I'm
saying that keywords need some serious work. It's not obvious to the user
what keywords are available or how to browse them. And they're sort of all
over the place with a lot of overlap.

Cheers to all,
Artur

[-- Attachment #2: Type: text/html, Size: 1250 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-02-15 22:38 Improving browsing and discoverability in the Packages Menu Artur Malabarba
@ 2015-02-16  2:25 ` Stefan Monnier
  2015-02-18 16:23 ` raman
  2015-04-19  2:59 ` Eric Abrahamsen
  2 siblings, 0 replies; 37+ messages in thread
From: Stefan Monnier @ 2015-02-16  2:25 UTC (permalink / raw)
  To: Artur Malabarba; +Cc: emacs-devel

> 1. The package list is ginormous and growing.
> 2. There are duplicate entries galore.
> 3. There's no useful sense of categories. (we have keywords,but see below).
> 4. Are there other points that people feel can be improved?

Indeed, that's a known problem.

> I can see myself writing something to improve 2.

Great, go for it.

> Any solution for 3 would also be a solution for 1, but I'm not sure what
> that would be.

1 and 3 are pretty closely related and are the main issue for me.

My best idea so far would be to write a "filter" command which would
work as follow:
- you type in the minibuffer some word
- the word is matched against the packages's descriptions and keywords.
- as you type the word, the list of packages gets filtered to only those
  that match.
- as you type the word, a list of possible completions is
  displayed, in icompletion-mode style.


        Stefan



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-02-15 22:38 Improving browsing and discoverability in the Packages Menu Artur Malabarba
  2015-02-16  2:25 ` Stefan Monnier
@ 2015-02-18 16:23 ` raman
  2015-04-18 11:26   ` Ted Zlatanov
  2015-04-19  2:59 ` Eric Abrahamsen
  2 siblings, 1 reply; 37+ messages in thread
From: raman @ 2015-02-18 16:23 UTC (permalink / raw)
  To: Artur Malabarba; +Cc: emacs-devel

Many ways of filtering -- over and above the present "filter by
keywords" would be nice.

1. Hide all installed/builtin packages 
2. Hide packages from one or more repositories 
3. Hide helper packages eg packages  that would only be installed as a
dependency of something else that is user-facing 



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-02-18 16:23 ` raman
@ 2015-04-18 11:26   ` Ted Zlatanov
  2015-04-18 13:25     ` Artur Malabarba
                       ` (2 more replies)
  0 siblings, 3 replies; 37+ messages in thread
From: Ted Zlatanov @ 2015-04-18 11:26 UTC (permalink / raw)
  To: emacs-devel

On Wed, 18 Feb 2015 08:23:51 -0800 raman <raman@google.com> wrote: 

r> Many ways of filtering -- over and above the present "filter by
r> keywords" would be nice.

r> 1. Hide all installed/builtin packages 
r> 2. Hide packages from one or more repositories 

(Sorry for the late comment, I've been away.  I don't think this has
happened, though?)

It would be easiest, I think, to make the source repo, the package
status, and other metadata (signed, etc.) into keywords and then enhance
the keyword browsing.  The "filter" functionality Stefan suggested makes
sense across keywords *and* package names and descriptions, and can
easily be plugged into the current "Filter" function in the menu.

r> 3. Hide helper packages eg packages  that would only be installed as a
r> dependency of something else that is user-facing 

I don't think it's good to ever hide those, but maybe they could be
given the "required-by=user-level-package" tags (multiples would be OK)?
And then in the UI they could be presented in a visually different way.
But hiding them would be a problem if you end up installing things you
didn't want.

Ted




^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-18 11:26   ` Ted Zlatanov
@ 2015-04-18 13:25     ` Artur Malabarba
  2015-04-18 13:25     ` Artur Malabarba
  2015-04-18 21:11     ` raman
  2 siblings, 0 replies; 37+ messages in thread
From: Artur Malabarba @ 2015-04-18 13:25 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1160 bytes --]

> r> Many ways of filtering -- over and above the present "filter by
> r> keywords" would be nice.
>
> r> 1. Hide all installed/builtin packages
> r> 2. Hide packages from one or more repositories
>
> (Sorry for the late comment, I've been away.  I don't think this has
> happened, though?)

It hasn't.

> It would be easiest, I think, to make the source repo, the package
> status, and other metadata (signed, etc.) into keywords and then enhance
> the keyword browsing.  The "filter" functionality Stefan suggested makes
> sense across keywords *and* package names and descriptions, and can
> easily be plugged into the current "Filter" function in the menu.

Sounds very reasonable. We could also implement excluding keywords. So it
would be easy to hide nil built-ins, for instance.

> r> 3. Hide helper packages eg packages  that would only be installed as a
> r> dependency of something else that is user-facing
>
> I don't think it's good to ever hide those,

This part is already done. Dependencies are not hidden, but are given a
comment face and sorted after the installed packages.

If the above is implemented, it should also be easy to hide them.

[-- Attachment #2: Type: text/html, Size: 1479 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-18 11:26   ` Ted Zlatanov
  2015-04-18 13:25     ` Artur Malabarba
@ 2015-04-18 13:25     ` Artur Malabarba
  2015-04-18 21:11     ` raman
  2 siblings, 0 replies; 37+ messages in thread
From: Artur Malabarba @ 2015-04-18 13:25 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1160 bytes --]

> r> Many ways of filtering -- over and above the present "filter by
> r> keywords" would be nice.
>
> r> 1. Hide all installed/builtin packages
> r> 2. Hide packages from one or more repositories
>
> (Sorry for the late comment, I've been away.  I don't think this has
> happened, though?)

It hasn't.

> It would be easiest, I think, to make the source repo, the package
> status, and other metadata (signed, etc.) into keywords and then enhance
> the keyword browsing.  The "filter" functionality Stefan suggested makes
> sense across keywords *and* package names and descriptions, and can
> easily be plugged into the current "Filter" function in the menu.

Sounds very reasonable. We could also implement excluding keywords. So it
would be easy to hide nil built-ins, for instance.

> r> 3. Hide helper packages eg packages  that would only be installed as a
> r> dependency of something else that is user-facing
>
> I don't think it's good to ever hide those,

This part is already done. Dependencies are not hidden, but are given a
comment face and sorted after the installed packages.

If the above is implemented, it should also be easy to hide them.

[-- Attachment #2: Type: text/html, Size: 1479 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-18 11:26   ` Ted Zlatanov
  2015-04-18 13:25     ` Artur Malabarba
  2015-04-18 13:25     ` Artur Malabarba
@ 2015-04-18 21:11     ` raman
  2015-04-18 23:05       ` Ted Zlatanov
  2 siblings, 1 reply; 37+ messages in thread
From: raman @ 2015-04-18 21:11 UTC (permalink / raw)
  To: emacs-devel

Another valuable filtering capability would be to group and filter by
"bundles" e.g. the large collection o f"helm-<xxx>", "copany-<xxx>" etc
could collapse into a single "bundle" that could be expanded and collapsed.
-- 



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-18 21:11     ` raman
@ 2015-04-18 23:05       ` Ted Zlatanov
  2015-04-19  1:20         ` Alexis
  2015-04-19 16:12         ` raman
  0 siblings, 2 replies; 37+ messages in thread
From: Ted Zlatanov @ 2015-04-18 23:05 UTC (permalink / raw)
  To: emacs-devel

On Sat, 18 Apr 2015 14:11:20 -0700 raman <raman@google.com> wrote: 

r> Another valuable filtering capability would be to group and filter by
r> "bundles" e.g. the large collection o f"helm-<xxx>", "copany-<xxx>" etc
r> could collapse into a single "bundle" that could be expanded and collapsed.

Who would define these bundles, maintain their definitions, pin packages
to each others, and test them to ensure they are not broken?

Or do you mean simply everything that begins with "helm-" is in the helm
bundle?  I don't think that's very useful, you'd end up installing a
boatload of useless packages.

Ted




^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-18 23:05       ` Ted Zlatanov
@ 2015-04-19  1:20         ` Alexis
  2015-04-19  3:16           ` Stefan Monnier
  2015-04-19 16:12         ` raman
  1 sibling, 1 reply; 37+ messages in thread
From: Alexis @ 2015-04-19  1:20 UTC (permalink / raw)
  To: emacs-devel


Ted Zlatanov <tzz@lifelogs.com> writes:

> Or do you mean simply everything that begins with "helm-" is in 
> the helm bundle?

That's what i assumed was being proposed.

> I don't think that's very useful, you'd end up installing a 
> boatload of useless packages.

i would find it very useful just to be able to visually 'hide' 
things i consider to be clutter whilst browsing. For instance: i 
no longer use the `autocomplete` package, so all the packages 
beginning with ac- are of no interest to me.

(Bonus points for functionality to allow avoiding searching in 
such 'hidden' sections.)


Alexis.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-02-15 22:38 Improving browsing and discoverability in the Packages Menu Artur Malabarba
  2015-02-16  2:25 ` Stefan Monnier
  2015-02-18 16:23 ` raman
@ 2015-04-19  2:59 ` Eric Abrahamsen
  2015-04-19 14:58   ` Drew Adams
  2 siblings, 1 reply; 37+ messages in thread
From: Eric Abrahamsen @ 2015-04-19  2:59 UTC (permalink / raw)
  To: emacs-devel

Artur Malabarba <bruce.connor.am@gmail.com> writes:


[...]

> Also regarding 3: We have keywords but they are not the same thing as
> categories. 
> I'm not saying we should come up with yet another classification, but
> I'm saying that keywords need some serious work. It's not obvious to
> the user what keywords are available or how to browse them. And
> they're sort of all over the place with a lot of overlap.

This would be nice to fix. `finder-known-keywords' looks like the place
to start. Package filtering is only indirectly connected to the value of
that variable, though.

Filtering is done on keywords actually found in the packages. If package
authors used `auto-insert' when creating their packages, they would be
prompted to add keywords from `finder-known-keywords'. That leaves a lot
of wiggle room for the insertion of random keywords.

In order to make filtering useful, it seems like it would be worthwhile
fleshing out the taxonomy of `finder-known-keywords', and enforcing it
-- ie, keywords not in that variable would be ignored by package
filtering.

Eric




^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-19  1:20         ` Alexis
@ 2015-04-19  3:16           ` Stefan Monnier
  2015-04-19  4:03             ` Alexis
  2015-04-19 16:14             ` raman
  0 siblings, 2 replies; 37+ messages in thread
From: Stefan Monnier @ 2015-04-19  3:16 UTC (permalink / raw)
  To: Alexis; +Cc: emacs-devel

> i would find it very useful just to be able to visually 'hide' things
> i consider to be clutter whilst browsing. For instance: i no longer use the
> `autocomplete` package, so all the packages beginning with ac- are of no
> interest to me.

Maybe one way to hide those "ac-*" packages is to let the user state "I
won't install package <foo>" so that all packages which (transitively)
require <foo> get greyed out or hidden.

We already have something similar in the treatment of packages which
require a version of Emacs higher than the current one.


        Stefan



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-19  3:16           ` Stefan Monnier
@ 2015-04-19  4:03             ` Alexis
  2015-04-19 16:14             ` raman
  1 sibling, 0 replies; 37+ messages in thread
From: Alexis @ 2015-04-19  4:03 UTC (permalink / raw)
  To: emacs-devel


Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

>> i would find it very useful just to be able to visually 'hide' 
>> things i consider to be clutter whilst browsing. For instance: 
>> i no longer use the `autocomplete` package, so all the packages 
>> beginning with ac- are of no interest to me.
>
> Maybe one way to hide those "ac-*" packages is to let the user 
> state "I won't install package <foo>" so that all packages which 
> (transitively) require <foo> get greyed out or hidden.

i'd certainly be happy with that also. :-)


Alexis.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* RE: Improving browsing and discoverability in the Packages Menu
  2015-04-19  2:59 ` Eric Abrahamsen
@ 2015-04-19 14:58   ` Drew Adams
  2015-04-20  8:38     ` Eric Abrahamsen
  0 siblings, 1 reply; 37+ messages in thread
From: Drew Adams @ 2015-04-19 14:58 UTC (permalink / raw)
  To: Eric Abrahamsen, emacs-devel

> This would be nice to fix. `finder-known-keywords' looks like the
> place to start. Package filtering is only indirectly connected to the
> value of that variable, though.
> 
> Filtering is done on keywords actually found in the packages. If
> package authors used `auto-insert' when creating their packages,
> they would be prompted to add keywords from `finder-known-keywords'.
> That leaves a lot of wiggle room for the insertion of random keywords.

I'm not sure what you meant by the last part, so this comment might
be unrelated to your post.  But I would like to remind us all that
`finder' functionality is not limited to the keywords found in
`finder-known-keywords'.

Users can use any keywords they like in their library headers.
I would not like to see `finder.el' gravitate toward imposing some
particular set of keywords or expecting only some particular set.

> In order to make filtering useful, it seems like it would be
> worthwhile fleshing out the taxonomy of `finder-known-keywords',
> and enforcing it -- ie, keywords not in that variable would be
> ignored by package filtering.

I'm not sure I would object to something like that being done only
"by package filtering".  But I would object to changing the point
of `finder.el' so that it generally becomes more rigid in that way.

Even for only "package filtering", I have the question of why.
Why should package filtering be limited to some predefined list
of keywords?  Just why should "keywords not in that variable...
be ignored by package filtering"?



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-18 23:05       ` Ted Zlatanov
  2015-04-19  1:20         ` Alexis
@ 2015-04-19 16:12         ` raman
  2015-04-20  1:22           ` Ted Zlatanov
  1 sibling, 1 reply; 37+ messages in thread
From: raman @ 2015-04-19 16:12 UTC (permalink / raw)
  To: emacs-devel

I meant something light-weight like "helm-" as a prefix. I didn't mean
we'd use these "bundles" to install a bunch of packages at one shot --
that would creat bloat as you say. I meant it purely as a means for
reducing the number of entries in the packages buffer.
-- 



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-19  3:16           ` Stefan Monnier
  2015-04-19  4:03             ` Alexis
@ 2015-04-19 16:14             ` raman
  2015-04-20  1:57               ` Stefan Monnier
  1 sibling, 1 reply; 37+ messages in thread
From: raman @ 2015-04-19 16:14 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Alexis, emacs-devel

transitively hiding dependencies of uninteresting packages is harder --
A might be uninteresting and depend on A_d; but hiding A_d  should not
confuse B if B also depends on A_d.
-- 



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-19 16:12         ` raman
@ 2015-04-20  1:22           ` Ted Zlatanov
  2015-04-20  9:02             ` Artur Malabarba
  2015-04-20 15:18             ` raman
  0 siblings, 2 replies; 37+ messages in thread
From: Ted Zlatanov @ 2015-04-20  1:22 UTC (permalink / raw)
  To: emacs-devel

On Sun, 19 Apr 2015 09:12:28 -0700 raman <raman@google.com> wrote: 

r> I meant something light-weight like "helm-" as a prefix. I didn't mean
r> we'd use these "bundles" to install a bunch of packages at one shot --
r> that would creat bloat as you say. I meant it purely as a means for
r> reducing the number of entries in the packages buffer.

Oh, that's just a tree widget then, with the branching determined by
node names.

I don't think the current `tabulated-list-mode' supports a tree, and
writing a new `tabulated-tree-mode' is probably better than trying to
retrofit trees into lists.

I'm still not sure hiding helm-* under a single helm header would be
useful.  It feels artificial.  It's probably better to distinguish
between a "plugin" for a package (which you do want to group under it)
and an "extension" to a package (which may or may not merit its own
top-level position).

Ted




^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-19 16:14             ` raman
@ 2015-04-20  1:57               ` Stefan Monnier
  0 siblings, 0 replies; 37+ messages in thread
From: Stefan Monnier @ 2015-04-20  1:57 UTC (permalink / raw)
  To: raman; +Cc: Alexis, emacs-devel

> transitively hiding dependencies of uninteresting packages is harder --

I'm talking about the reverse: hiding packages that depend on FOO,
rather than hiding dependencies of FOO.


        Stefan



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-19 14:58   ` Drew Adams
@ 2015-04-20  8:38     ` Eric Abrahamsen
  2015-04-20  9:26       ` Artur Malabarba
  0 siblings, 1 reply; 37+ messages in thread
From: Eric Abrahamsen @ 2015-04-20  8:38 UTC (permalink / raw)
  To: emacs-devel

Drew Adams <drew.adams@oracle.com> writes:

>> This would be nice to fix. `finder-known-keywords' looks like the
>> place to start. Package filtering is only indirectly connected to the
>> value of that variable, though.
>> 
>> Filtering is done on keywords actually found in the packages. If
>> package authors used `auto-insert' when creating their packages,
>> they would be prompted to add keywords from `finder-known-keywords'.
>> That leaves a lot of wiggle room for the insertion of random keywords.
>
> I'm not sure what you meant by the last part, so this comment might
> be unrelated to your post.  But I would like to remind us all that
> `finder' functionality is not limited to the keywords found in
> `finder-known-keywords'.
>
> Users can use any keywords they like in their library headers.
> I would not like to see `finder.el' gravitate toward imposing some
> particular set of keywords or expecting only some particular set.
>
>> In order to make filtering useful, it seems like it would be
>> worthwhile fleshing out the taxonomy of `finder-known-keywords',
>> and enforcing it -- ie, keywords not in that variable would be
>> ignored by package filtering.
>
> I'm not sure I would object to something like that being done only
> "by package filtering".  But I would object to changing the point
> of `finder.el' so that it generally becomes more rigid in that way.
>
> Even for only "package filtering", I have the question of why.
> Why should package filtering be limited to some predefined list
> of keywords?  Just why should "keywords not in that variable...
> be ignored by package filtering"?

You're right, "enforcing" anything is probably a bad idea. But looking
at the lists presented to you when filtering packages (or when doing an
auto-insert in a new elisp file), it looks a lot like tag-rot: a whole
lot of random overlapping categories and mis-matched types. I guess I
agree that package authors should be able to put anything they want in
the Keyword header. On the other hand, I want to be able to search for
packages related to sending email messages from Emacs (for instance),
and know that I'm not missing packages because their author tagged them
as "email" instead of "mail". That sort of thing just makes the whole
process feel broken.

Maybe just expand the canonical list of curated keywords, then let
package authors add their own on top of that?

Eric




^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-20  1:22           ` Ted Zlatanov
@ 2015-04-20  9:02             ` Artur Malabarba
  2015-04-20 15:18             ` raman
  1 sibling, 0 replies; 37+ messages in thread
From: Artur Malabarba @ 2015-04-20  9:02 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 297 bytes --]

> I don't think the current `tabulated-list-mode' supports a tree, and
> writing a new `tabulated-tree-mode' is probably better than trying to
> retrofit trees into lists.

This would be very nice to have. It would also allow us to display a single
entry for packages which are on multiple repos.

[-- Attachment #2: Type: text/html, Size: 359 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-20  8:38     ` Eric Abrahamsen
@ 2015-04-20  9:26       ` Artur Malabarba
  2015-04-20 10:17         ` Alexis
  0 siblings, 1 reply; 37+ messages in thread
From: Artur Malabarba @ 2015-04-20  9:26 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 769 bytes --]

> On the other hand, I want to be able to search for
> packages related to sending email messages from Emacs (for instance),
> and know that I'm not missing packages because their author tagged them
> as "email" instead of "mail".

Agreed. This is precisely why the current state is a mess.

> Maybe just expand the canonical list of curated keywords, then let
> package authors add their own on top of that?

This by itself will take a very long time, if ever, to have any effect. It
would have to be coupled with something else.
For instance, there could be a compiler warning if the package has unknown
keywords. This wouldn't prevent the keyword from working, but it would
inform the developer to either change the keyword or ask us to add it in.
Is that too much?

[-- Attachment #2: Type: text/html, Size: 909 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-20  9:26       ` Artur Malabarba
@ 2015-04-20 10:17         ` Alexis
  2015-04-20 11:30           ` Artur Malabarba
  2015-04-20 14:03           ` Eric Abrahamsen
  0 siblings, 2 replies; 37+ messages in thread
From: Alexis @ 2015-04-20 10:17 UTC (permalink / raw)
  To: emacs-devel


Artur Malabarba <bruce.connor.am@gmail.com> writes:

>> Maybe just expand the canonical list of curated keywords, then 
>> let package authors add their own on top of that?
>
> This by itself will take a very long time, if ever, to have any 
> effect. It would have to be coupled with something else.  For 
> instance, there could be a compiler warning if the package has 
> unknown keywords. This wouldn't prevent the keyword from 
> working, but it would inform the developer to either change the 
> keyword or ask us to add it in.  Is that too much?

Hmm .... i'm not sure how practical that last bit is. For example: 
should "vcard" be added as an 'official' keyword? (i currently 
include it in the list of keywords for `org-vcard', the other two 
being "outline" and "org".) Should i instead replace the "vcard" 
keyword with "contacts", given that people could plausibly find 
`org-vcard' via searching package names instead of keywords for 
the term 'vcard', but currently wouldn't find it were they 
thinking in terms of "contacts management"? Who would be the 
person or people making the decision on whether a keyword should 
be added, modified or removed? Might such a process result in 
emacs-devel being flooded with interminable ontological 
bikeshedding?


Alexis.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-20 10:17         ` Alexis
@ 2015-04-20 11:30           ` Artur Malabarba
  2015-04-20 14:32             ` Drew Adams
  2015-04-20 14:03           ` Eric Abrahamsen
  1 sibling, 1 reply; 37+ messages in thread
From: Artur Malabarba @ 2015-04-20 11:30 UTC (permalink / raw)
  To: Alexis; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1666 bytes --]

On Apr 20, 2015 12:17 PM, "Alexis" <flexibeast@gmail.com> wrote:
>
>
>> This by itself will take a very long time, if ever, to have any effect.
It would have to be coupled with something else.  For instance, there could
be a compiler warning if the package has unknown keywords. This wouldn't
prevent the keyword from working, but it would inform the developer to
either change the keyword or ask us to add it in.  Is that too much?
>
> Hmm .... i'm not sure how practical that last bit is.

Me neither. :-) just throwing ideas around.

> For example: should "vcard" be added as an 'official' keyword? (i
currently include it in the list of keywords for `org-vcard', the other two
being "outline" and "org".)

I'd say yes.

>  Should i instead replace the "vcard" keyword with "contacts", given that
people could plausibly find `org-vcard' via searching package names instead
of keywords for the term 'vcard', but currently wouldn't find it were they
thinking in terms of "contacts management"?

Use both.

> Who would be the person or people making the decision on whether a
keyword should be added, modified or removed?

We would just accept any keyword that doesn't already have an obvious
equivalent. The point is not to be restrictive, but to prevent duplication
like mail/email. We could also have some restriction like accepting at most
1 (or 2? 3?) new keyword request per package.

> Might such a process result in emacs-devel being flooded with
interminable ontological bikeshedding?

Possibly. New packages are created at a rate of a few per day. It's hard to
say how many new keywords that entails. Somebody could estimate it based on
Melpa git history.

[-- Attachment #2: Type: text/html, Size: 2067 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-20 10:17         ` Alexis
  2015-04-20 11:30           ` Artur Malabarba
@ 2015-04-20 14:03           ` Eric Abrahamsen
  1 sibling, 0 replies; 37+ messages in thread
From: Eric Abrahamsen @ 2015-04-20 14:03 UTC (permalink / raw)
  To: emacs-devel

Alexis <flexibeast@gmail.com> writes:

> Artur Malabarba <bruce.connor.am@gmail.com> writes:
>
>>> Maybe just expand the canonical list of curated keywords, then let
>>> package authors add their own on top of that?
>>
>> This by itself will take a very long time, if ever, to have any
>> effect. It would have to be coupled with something else.  For
>> instance, there could be a compiler warning if the package has
>> unknown keywords. This wouldn't prevent the keyword from working,
>> but it would inform the developer to either change the keyword or
>> ask us to add it in.  Is that too much?
>
> Hmm .... i'm not sure how practical that last bit is. For example:
> should "vcard" be added as an 'official' keyword? (i currently include
> it in the list of keywords for `org-vcard', the other two being
> "outline" and "org".) Should i instead replace the "vcard" keyword
> with "contacts", given that people could plausibly find `org-vcard'
> via searching package names instead of keywords for the term 'vcard',
> but currently wouldn't find it were they thinking in terms of
> "contacts management"? Who would be the person or people making the
> decision on whether a keyword should be added, modified or removed?
> Might such a process result in emacs-devel being flooded with
> interminable ontological bikeshedding?

The danger is great. I don't have a wonderful solution, either, but I'm
seeing a vague vision of some sort of a two-tiered system: the first a
limited list of curated categories set by someone in a position of
authority, and another free-for-all keyword mashup. In your example,
you'd categorize your package as "contacts" under tier one, and put
"vcard" and "org" and whatever else in tier two. Package filtering would
happen on both tiers, perhaps with completion only for the first tier.

I can imagine two different package headers: Category and Keywords,
corresponding to the two tiers. I can also imagine tier one coming from
Keywords, and tier two coming from searching the Commentary section.

That's all I've got.

Eric




^ permalink raw reply	[flat|nested] 37+ messages in thread

* RE: Improving browsing and discoverability in the Packages Menu
  2015-04-20 11:30           ` Artur Malabarba
@ 2015-04-20 14:32             ` Drew Adams
  2015-04-20 17:32               ` Artur Malabarba
  0 siblings, 1 reply; 37+ messages in thread
From: Drew Adams @ 2015-04-20 14:32 UTC (permalink / raw)
  To: bruce.connor.am, Alexis; +Cc: emacs-devel

> We would just accept any keyword that doesn't already have...

"We" is what here, exactly?  Just the use of keywords by
`list-packages' (or other package viewing/filtering code)?

If so, I don't really care what you do in that regard.  I assume
it could be an improvement.

But if "we" here means Emacs in general or hints at a redirection
of the intention and flexible Emacs design of header keywords
and finder.el, then I'm not in favor.  Please solve your viewing
or filtering problems without touching file keywords or finder.el.

Do what you like on the viewing/filtering end, for package listing.
But please don't mess with the intention of file-header keywords,
which is *any* intention that anyone wants to give them, and which
at least includes *all* that finder.el can do with them.

> The point is not to be restrictive, but to prevent duplication
> like mail/email.

And what if someone has code that *wants* to distinguish keyword
`mail' from keyword `email'?  One person's (or one app's) handy
duplicate prevention can block another from taking advantage of
useful distinctions.  Eliminate what you consider duplication
at the consumer end, by filtering.  Please do not attempt to
impose a limitation on the source (`Keywords').  Filter; do not
"prevent".

Please don't restrict your thinking to your immediate task of
improving the `list-packages' UI.  Not if you are proposing
restrictions on header keywords or on what finder.el can do.

Filtering should not require redefining and redesigning the
things that are being filtered.  If the packages UI can't
figure out a way to easily let users match both `mail' and
`email', instead of preventing such "duplication" at the
source, then we're in deep trouble.  There should be no
requirement that the source code limit the keywords that
can be handled.

> We could also have some restriction like accepting at most
> 1 (or 2? 3?) new keyword request per package. 

What is a "keyword request" here?  Are you speaking only of
what a `list-packages' UI user can request?  Who or what is
requesting a keyword from who or what?

> Might such a process result in emacs-devel being flooded
> with interminable ontological bikeshedding?

Why should what can end up in a file-header `Keywords' list
concern emacs-devel at all?

Leave it alone.  Figure out whatever you like for users to 
access/search/filter/view keywords for a list of packages,
but please do not try to impose restrictions on what users
and other code can use for file-header keywords.

Emacs is always much bigger than the part of it that you are
currently thinking of improving.

(And yes, it is bigger than what is developed by emacs-devel
and distributed as part of GNU Emacs.)

> Possibly. New packages are created at a rate of a few per
> day. It's hard to say how many new keywords that entails.

It shouldn't matter.  At all.  Even just for filtering for
the UI that lists packages, IMO.  But especially beyond that
*one* use of file-header keywords.

File headers are not only for package.el (and not only for
finder.el, for that matter).  Package.el has come late to
the file-headers (including `Keywords') party.

But it is welcome to join, as long as it respects the other
partygoers.  And it doesn't matter how many packagers it
brings through the front door.  They should realize that
the party is not only for them.

They could of course start their own party elsewhere, using
their own `Package Keywords' or some such.  Or they can just
learn to get along with others at the same `Keywords' party.

(There have already been attempts to give `Version' a new,
restricted interpretation.  Fortunately, so far such
restrictions apply only to use by package.el, and not to
some general redefinition of what `Version' might be for.)

> Somebody could estimate it based on Melpa git history.

Waste of time, IMO.  And likely to misguide.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-20  1:22           ` Ted Zlatanov
  2015-04-20  9:02             ` Artur Malabarba
@ 2015-04-20 15:18             ` raman
  2015-04-20 15:23               ` Drew Adams
  1 sibling, 1 reply; 37+ messages in thread
From: raman @ 2015-04-20 15:18 UTC (permalink / raw)
  To: emacs-devel

Ability to handle trees within tabulated lists would be nice. An
intermediate solution that might be quicker to build would be dired-like
marking by regexp and hiding/exposing. 
-- 



^ permalink raw reply	[flat|nested] 37+ messages in thread

* RE: Improving browsing and discoverability in the Packages Menu
  2015-04-20 15:18             ` raman
@ 2015-04-20 15:23               ` Drew Adams
  2015-04-21  0:20                 ` raman
  0 siblings, 1 reply; 37+ messages in thread
From: Drew Adams @ 2015-04-20 15:23 UTC (permalink / raw)
  To: raman, emacs-devel

> Ability to handle trees within tabulated lists would be nice. An
> intermediate solution that might be quicker to build would be dired-
> like marking by regexp and hiding/exposing.

Not just intermediate, but better, IMO.

Markings can be used for lots of things, just as they are in Dired.

Currently, IIUC, the `list-packages' UI provides only for markings
that mean "install" and "delete".  A more general marking facility,
a la Dired, would be an improvement, and would invite future
enhancements that use the same (and familiar) UI.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* RE: Improving browsing and discoverability in the Packages Menu
  2015-04-20 14:32             ` Drew Adams
@ 2015-04-20 17:32               ` Artur Malabarba
  2015-04-20 18:17                 ` Drew Adams
  0 siblings, 1 reply; 37+ messages in thread
From: Artur Malabarba @ 2015-04-20 17:32 UTC (permalink / raw)
  To: Drew Adams; +Cc: Alexis, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1090 bytes --]

> > We would just accept any keyword that doesn't already have...
>
> "We" is what here, exactly?  Just the use of keywords by
> `list-packages' (or other package viewing/filtering code)?

The idea is not to restrict or prevent anything, just recommend.
We would extend the list of known finder.el keywords. When the byte
compiler is compiling a package, it could issue a warning if it notices
keywords that are not part of the known list.
All keywords would keep working just the same (even those not on the list).
This warning would be the only change here.

The intention was to nudge developers towards avoiding useless duplicates.
We wouldn't enforce anything. Obviously this list of keywords that don't
issue warnings would need to grow with time. Which is the most cumbersome
aspect here.

Let me clarify, I don't think this idea should be implemented as is. I'm
just throwing thoughts out there in the hopes we can converge to something
useful.
I agree the keywords system should never become restricted, but I do think
we need to help developers towards standardising it a little.

[-- Attachment #2: Type: text/html, Size: 1240 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* RE: Improving browsing and discoverability in the Packages Menu
  2015-04-20 17:32               ` Artur Malabarba
@ 2015-04-20 18:17                 ` Drew Adams
  2015-04-20 19:49                   ` Artur Malabarba
  0 siblings, 1 reply; 37+ messages in thread
From: Drew Adams @ 2015-04-20 18:17 UTC (permalink / raw)
  To: bruce.connor.am; +Cc: Alexis, emacs-devel

(Sure wish you would send your emails as plain text, BTW.)

> > > We would just accept any keyword that doesn't already have...
> >
> > "We" is what here, exactly?  Just the use of keywords by
> > `list-packages' (or other package viewing/filtering code)?
> The idea is not to restrict or prevent anything, just recommend.
> We would extend the list of known finder.el keywords. When the byte
> compiler is compiling a package, it could issue a warning if it
> notices keywords that are not part of the known list.

I for one (perhaps the only one) would object to that.  There is no
reason to "warn" users about libraries that are not doing anything
even potentially wrong - and that includes using `Keywords' in a
file header that you might never have heard of.

Again.  File headers with keyword `Keywords' have been around for
decades.  `Keywords' is for any keywords whatsoever.  It does not
belong to package.el.

I suggested, and suggest again, that if you are going to take such
a proprietary and controlling attitude toward package.el-recognizable
keywords then package.el should add and use its own file-header
keyword, e.g., `Package Keywords' - and leave the long-existing (and
used) keyword `Keywords' alone.

> All keywords would keep working just the same (even those not on
> the list).

"Warning" users about keywords you don't recognize does not mean
that things "keep working just the same".  Forget about the warning,
if you want to pretend that things will "keep working just the same".

> This warning would be the only change here.

That's one change too much.  Have package.el do it in its own
backyard: `Package Keywords'.  Or don't have it do it at all.

> The intention was to nudge developers towards avoiding useless
> duplicates. 

Duplicates as far as package.el is concerned.  That doesn't mean
duplicates as far as every use/program is concerned.

I have no problem with package.el doing whatever it wants, in its
own territory.  But if it wants to start using existing keywords,
such as `Keywords', then it needs to play well with the others
who are already in the same sandbox.  It can't just move in and
claim the sandbox for its own.

> We wouldn't enforce anything.

The warning is uncalled for, if this is about `Keywords'.  It
can be appropriate, if it is about some new file-header keyword.

> I agree the keywords system should never become restricted, but
> I do think we need to help developers towards standardising it
> a little.

The problem is that you are referring to "the keywords system".
And you are trying to shove it into a particular use case.

File-header fields (keywords) that have been around for quite
some time should be left as is (and this should have included
`Version').  You can add whatever other fields you like, and
make their use as restrictive or helpful with as many warnings
or preventions as you like.  No problem.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-20 18:17                 ` Drew Adams
@ 2015-04-20 19:49                   ` Artur Malabarba
  2015-04-20 20:30                     ` Drew Adams
  0 siblings, 1 reply; 37+ messages in thread
From: Artur Malabarba @ 2015-04-20 19:49 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel

2015-04-20 19:17 GMT+01:00 Drew Adams <drew.adams@oracle.com>:
> (Sure wish you would send your emails as plain text, BTW.)

Haven't figured out how to that on my phone yet (so I'm switching to
the laptop just for you ;-). If it's any consolation, your pre-filled
emails look terrible on my phone too. :-)

> I for one (perhaps the only one) would object to that.  There is no
> reason to "warn" users about libraries that are not doing anything
> even potentially wrong - and that includes using `Keywords' in a
> file header that you might never have heard of.
> [...]
> The problem is that you are referring to "the keywords system".
> And you are trying to shove it into a particular use case.
>
> File-header fields (keywords) that have been around for quite
> some time should be left as is (and this should have included
> `Version').  You can add whatever other fields you like, and
> make their use as restrictive or helpful with as many warnings
> or preventions as you like.  No problem.

Thanks. I do see your point in all of that.I just wish we had some way
to polish things out a little bit.f This not even for the sake of
package.el, but for the keywords as a whole.

For instance, there are 3 different mode-line keywords: mode-line,
modeline, and mode line. The last two contain a single package each,
both of which will not show up if the user looks for the "mode-line"
keword.
A similar thing happens with `package' vs `packages', application vs
applications, buffer vs buffers, bookmark vs bookmarks, etc.
Not to mention a number of keywords which are just plain senseless
like: "$", "$date:", "/", "09:41:07", "2015/01/12", and ":".

These don't just affect the package menu. These also pollute the
finder keywords menu, and pretty much anywhere else they show up.

I understand a warning may not be the way of doing that, but it would
be nice if we could help developers standardize these a little. And
I'll appreciate further suggestions.
It's clear that whoever used "modeline" as a keyword simply didn't
know that mode-line is the commonly used one (and why should they
know, it's not in `finder-list-keywords'). And if they do (for
whatever reason) have the intention of using modeline instead of
mode-line, that's fine. I just want to avoid the accidental duplicates
by making developers more aware of the already existing keywords. I'm
don't want to prohibit duplicates or anything.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* RE: Improving browsing and discoverability in the Packages Menu
  2015-04-20 19:49                   ` Artur Malabarba
@ 2015-04-20 20:30                     ` Drew Adams
  2015-04-21  4:05                       ` Tassilo Horn
  0 siblings, 1 reply; 37+ messages in thread
From: Drew Adams @ 2015-04-20 20:30 UTC (permalink / raw)
  To: bruce.connor.am; +Cc: emacs-devel

> > (Sure wish you would send your emails as plain text, BTW.)
> 
> Haven't figured out how to that on my phone yet (so I'm switching to
> the laptop just for you ;-). 

Thank you.  (And I'll bet I'm not the only one who appreciates it.)

> If it's any consolation, your pre-filled emails look terrible on
> my phone too. :-)

If it's any consolation, they're not even prefilled.  I do it myself.

> Thanks. I do see your point in all of that.I just wish we had some way
> to polish things out a little bit.f This not even for the sake of
> package.el, but for the keywords as a whole.

I would say to concentrate on what package.el needs.  And in particular,
to consider having it do whatever it thinks helps it, but in its own
header keyword (field), not in `Keywords'.  IOW, start clean, from
scratch, and impose any rules and checking you want.

> For instance, there are 3 different mode-line keywords: mode-line,
> modeline, and mode line. The last two contain a single package each,
> both of which will not show up if the user looks for the "mode-line"
> keword...

Yes, it's a bother.  But there is no way to know what is a typo or
negligence and what is intentional difference, e.g. required by some
particular code or context.

That's why I suggest that you start out with a new, fresh field,
which you announce as pretty much dedicated to package.el and which
will be controlled by it.

With that announcement, you are free to ignore or correct or raise
an error for anything that doesn't fit the mold.

And with a little encouragement from such checks (e.g. errors),
library authors will learn to DTRT.

My only point was that it is not wise to try to usurp `Keywords'
for this.  Too much history, too long.  Too much out there already,
at least potentially, in the form of various usages and expectations.

> I understand a warning may not be the way of doing that, but it would
> be nice if we could help developers standardize these a little. And
> I'll appreciate further suggestions.

See above.  Hands off `Keywords' and you're free to do whatever
you think helps in this regard.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-20 15:23               ` Drew Adams
@ 2015-04-21  0:20                 ` raman
  2015-04-21  1:07                   ` Drew Adams
  0 siblings, 1 reply; 37+ messages in thread
From: raman @ 2015-04-21  0:20 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-devel

:-) I'd love to be able to apply custom marks -- simple regexp on
package name  or repo would do -- then one could hide, unhide, install
delete or whatever else.
-- 



^ permalink raw reply	[flat|nested] 37+ messages in thread

* RE: Improving browsing and discoverability in the Packages Menu
  2015-04-21  0:20                 ` raman
@ 2015-04-21  1:07                   ` Drew Adams
  0 siblings, 0 replies; 37+ messages in thread
From: Drew Adams @ 2015-04-21  1:07 UTC (permalink / raw)
  To: raman; +Cc: emacs-devel

> :-) I'd love to be able to apply custom marks -- simple regexp on
> package name  or repo would do -- then one could hide, unhide,
> install delete or whatever else.

Yes, and not just apply custom marks (as in Dired, where you can
use any marks you like, not just `*').  But much of the rest of
Dired's handling of marks (and deletion flags) too.

This includes `M-DEL' (and `C-u M-DEL'), which removes a specific
mark (or any marks) from each entry.

Dired should (in general) be a good model to follow, for general
stuff that is not file-specific.  This includes omitting,
navigating, operating on marked entries in various ways, hiding
details, etc.

If you end up grouping packages, a Dired analogy for that could
be directories (which group files, and even do so at any number
of levels).

Let users include ("insert") group listings, jump back and forth
between the group name and its listing, etc.

The Dired UI is pretty good - tried & true.



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-20 20:30                     ` Drew Adams
@ 2015-04-21  4:05                       ` Tassilo Horn
  2015-04-21  5:25                         ` Drew Adams
  0 siblings, 1 reply; 37+ messages in thread
From: Tassilo Horn @ 2015-04-21  4:05 UTC (permalink / raw)
  To: Drew Adams; +Cc: bruce.connor.am, emacs-devel

Drew Adams <drew.adams@oracle.com> writes:

>> For instance, there are 3 different mode-line keywords: mode-line,
>> modeline, and mode line. The last two contain a single package each,
>> both of which will not show up if the user looks for the "mode-line"
>> keword...
>
> Yes, it's a bother.  But there is no way to know what is a typo or
> negligence and what is intentional difference, e.g. required by some
> particular code or context.

If it were intended by the package author, where is the problem of
adding

  ;; byte-compile-warnings: (not unknown-keyword)

to the package's local variables section?

> That's why I suggest that you start out with a new, fresh field, which
> you announce as pretty much dedicated to package.el and which will be
> controlled by it.

I don't see why `Keywords' shouldn't be appropriate for elisp programs
installable via package.el.  It's not that it re-defines its meaning.
The benefit of using it is that it's already there most of the time.  A
new field would take some time to get picked up.  And I'm pretty sure
you won't see any occurrence of

  ;; Keywords: modeline, electronic mail
  ;; Package Keywords: mode-line, email

even if there was a new field.

Bye,
Tassilo



^ permalink raw reply	[flat|nested] 37+ messages in thread

* RE: Improving browsing and discoverability in the Packages Menu
  2015-04-21  4:05                       ` Tassilo Horn
@ 2015-04-21  5:25                         ` Drew Adams
  2015-04-21  6:52                           ` Tassilo Horn
  0 siblings, 1 reply; 37+ messages in thread
From: Drew Adams @ 2015-04-21  5:25 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: bruce.connor.am, emacs-devel

> >> For instance, there are 3 different mode-line keywords: mode-line,
> >> modeline, and mode line. The last two contain a single package each,
> >> both of which will not show up if the user looks for the "mode-line"
> >> keword...
> >
> > Yes, it's a bother.  But there is no way to know what is a typo or
> > negligence and what is intentional difference, e.g. required by some
> > particular code or context.
> 
> If it were intended by the package author, where is the problem of
> adding
>   ;; byte-compile-warnings: (not unknown-keyword)
> to the package's local variables section?

So to some file written by someone somewhere somewhen, perhaps
quite some time ago, you say: "All ya gotta do is jump through
this leetle hoop here."

I say, "All ya gotta do is stay away from `Keywords', which has
been around forever.  Just go and roll yer own!  Problem solved."

Ya name it `Package Keywords' or `Kate's Categories' or whatever.
End of story - poof, no problem.

Just don't try to hijack `Keywords', which Emacs has been using
for a long long time without additional rules, and stomp on its
users with a fancy set of patterns and relations that fit your
shiny new app (`package.el').  There's no call for that, no need.

It's pretty simple really.  Create your own sandbox.

(I don't mean you personally, of course.  I hope you get the idea.)

> > That's why I suggest that you start out with a new, fresh field, which
> > you announce as pretty much dedicated to package.el and which will be
> > controlled by it.
> 
> I don't see why `Keywords' shouldn't be appropriate for elisp programs
> installable via package.el.

It could be, if package.el behaved and played well with others.

But if it comes storming into the sandbox and cries that everyone
needs to play by the rules of a new game it's invented, that's
not fair.  It is only because it menaces now to start shoving
others around, tossing sand in faces, that one is inclined to
suggest politely, "Please go play over there, nicely, in your
own sandbox, if you can't get along here."

> It's not that it re-defines its meaning.

Sure it is.  If it is starting to say what's a duplicate and
what's not.  And it's even trying to "prevent" duplication (as
it sees it).

It's imposing a new world order on the little sandbox.  And there
is no need - plenty of room for it to play on its own in its own
shiny new sandbox.  It can invent and refine rules to fit its own
uses perfectly, with no noise or interference from anyone else.

> The benefit of using it is that it's already there most of the
> time.  

Ay, but there's the rub.  Instead of building (and how much
effort does it really take?) its own sandbox, it'd rather usurp
the community one in Old Town.  Step in, set some rules, issue
some warnings if they're not respected...  There's a new sheriff
in town - move along.

> A new field would take some time to get picked up.

Oh, please.  You underestimate the power of Emacs Dev.
We're already hearing that users should be told to no
longer put `require' in their init files.

`package.el' has already taken over most of the playground.
It won't be a big deal for it to build a new sandbox in one
corner that lots of kids will want to play in - especially
the new kids.  It won't be playing alone for long, trust me.

> And I'm pretty sure you won't see any occurrence of
>   ;; Keywords: modeline, electronic mail
>   ;; Package Keywords: mode-line, email
> even if there was a new field.

Sorry, I didn't catch your last point.  Perhaps you mean
to say that `Keywords' will disappear?  All the kids will
run to play in the new sandbox?

Maybe so.  But the old one will pass with a whimper in that
case, not a bang.  No sand in faces. No confusion in the
meantime, no adapting, no messy cleanup.  Peaceful coexistence.

I'd even go so far as to suggest that *each* file-header
keyword that package.el wants to use, and possibly give
special some semantics (order) to, should use the same prefix:
`Package Version', `Package Requires', `Package Keywords',...

Why not?

No confusion, complete control over its own needs and wishes.
Clean and simple.  No wrestling with what might have been
used here or there for `Version' or `Keywords' or...  Easily
recognizable for what it is: something to do with, uh, packages.

Try it.  I'll bet you a pint of whatever that if you create
the `Package Keywords' sandbox today, write up its Robert's
Rules of Order, and implement whatever enforcements or
reminders/warnings you think might be helpful...  By the
time you can say `Kate's Categories' it will be the most
popular act on the file-header circuit.  Better mousetrap,
beaten path.

(Oh, it's `Package-Requires', not `Package Requires'?
No special need for that hyphen, but so be it:
`Package-Version', `Package-Keywords',...)



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-21  5:25                         ` Drew Adams
@ 2015-04-21  6:52                           ` Tassilo Horn
  2015-04-21  9:04                             ` Eric Abrahamsen
  2015-04-21 15:44                             ` Drew Adams
  0 siblings, 2 replies; 37+ messages in thread
From: Tassilo Horn @ 2015-04-21  6:52 UTC (permalink / raw)
  To: Drew Adams; +Cc: bruce.connor.am, emacs-devel

Drew Adams <drew.adams@oracle.com> writes:

>> If it were intended by the package author, where is the problem of
>> adding
>>   ;; byte-compile-warnings: (not unknown-keyword)
>> to the package's local variables section?
>
> So to some file written by someone somewhere somewhen, perhaps quite
> some time ago, you say: "All ya gotta do is jump through this leetle
> hoop here."

Yes, exactly.  Because if it is available via ELPA, MELPA, or some other
package archive, then it seems to be actively maintained.  And in the
very unlikely case that the author/maintainer insists on "modeline"
instead of "mode-line", she can jump through the little hoop.

BTW, an `unknown-keyword' warning was not really what I meant in my
previous reply.  Of course, package.el cannot know all sensible
keywords, so it should work with any keyword.  But in the case of
keywords that are likely just synonyms or typos of some commonly used
keyword (modeline vs. mode-line), it could suggest the commonly used one
for achieving a bit standardization.

>> And I'm pretty sure you won't see any occurrence of
>>   ;; Keywords: modeline, electronic mail
>>   ;; Package Keywords: mode-line, email
>> even if there was a new field.
>
> Sorry, I didn't catch your last point.  Perhaps you mean to say that
> `Keywords' will disappear?  All the kids will run to play in the new
> sandbox?

No, what I've meant to say is that when a maintainer adds the new
`Package Keywords' header duplicating the existing `Keywords' header and
then sees that byte-compilation suggests to use the more commonly used
"mode-line" and "email" instead of "modeline" and "electronic mail", why
should she change only `Package Keywords` accordingly and not
`Keywords', too?  (Assuming that she agrees that "mode-line" and "email"
express what she intended to express, too.)

She doesn't know that there are some people that don't want `Keywords'
to be changed.  Or should the warning say something like that?

    The Package Keywords entry "modeline" is likely to mean "mode-line".
    If you agree, change it accordingly but please let the Keywords
    header as-is for the Olt Town's habitants peace of mind.

Bye,
Tassilo



^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: Improving browsing and discoverability in the Packages Menu
  2015-04-21  6:52                           ` Tassilo Horn
@ 2015-04-21  9:04                             ` Eric Abrahamsen
  2015-04-21 15:44                             ` Drew Adams
  1 sibling, 0 replies; 37+ messages in thread
From: Eric Abrahamsen @ 2015-04-21  9:04 UTC (permalink / raw)
  To: emacs-devel

Tassilo Horn <tsdh@gnu.org> writes:

> Drew Adams <drew.adams@oracle.com> writes:
>
>>> If it were intended by the package author, where is the problem of
>>> adding
>>>   ;; byte-compile-warnings: (not unknown-keyword)
>>> to the package's local variables section?
>>
>> So to some file written by someone somewhere somewhen, perhaps quite
>> some time ago, you say: "All ya gotta do is jump through this leetle
>> hoop here."
>
> Yes, exactly.  Because if it is available via ELPA, MELPA, or some other
> package archive, then it seems to be actively maintained.  And in the
> very unlikely case that the author/maintainer insists on "modeline"
> instead of "mode-line", she can jump through the little hoop.
>
> BTW, an `unknown-keyword' warning was not really what I meant in my
> previous reply.  Of course, package.el cannot know all sensible
> keywords, so it should work with any keyword.  But in the case of
> keywords that are likely just synonyms or typos of some commonly used
> keyword (modeline vs. mode-line), it could suggest the commonly used one
> for achieving a bit standardization.
>
>>> And I'm pretty sure you won't see any occurrence of
>>>   ;; Keywords: modeline, electronic mail
>>>   ;; Package Keywords: mode-line, email
>>> even if there was a new field.
>>
>> Sorry, I didn't catch your last point.  Perhaps you mean to say that
>> `Keywords' will disappear?  All the kids will run to play in the new
>> sandbox?
>
> No, what I've meant to say is that when a maintainer adds the new
> `Package Keywords' header duplicating the existing `Keywords' header and
> then sees that byte-compilation suggests to use the more commonly used
> "mode-line" and "email" instead of "modeline" and "electronic mail", why
> should she change only `Package Keywords` accordingly and not
> `Keywords', too?  (Assuming that she agrees that "mode-line" and "email"
> express what she intended to express, too.)

If we go this route I humbly suggest Package Category (or just Category)
as an alternative. It's not as immediately confusable with "keyword",
and I think semantically speaking pairs with it quite nicely.




^ permalink raw reply	[flat|nested] 37+ messages in thread

* RE: Improving browsing and discoverability in the Packages Menu
  2015-04-21  6:52                           ` Tassilo Horn
  2015-04-21  9:04                             ` Eric Abrahamsen
@ 2015-04-21 15:44                             ` Drew Adams
  1 sibling, 0 replies; 37+ messages in thread
From: Drew Adams @ 2015-04-21 15:44 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: bruce.connor.am, emacs-devel

> >> And I'm pretty sure you won't see any occurrence of
> >>   ;; Keywords: modeline, electronic mail
> >>   ;; Package Keywords: mode-line, email
> >> even if there was a new field.
> >
> > Sorry, I didn't catch your last point.  Perhaps you mean to say that
> > `Keywords' will disappear?  All the kids will run to play in the new
> > sandbox?
> 
> No, what I've meant to say is that when a maintainer adds the new
> `Package Keywords' header duplicating the existing `Keywords' header and
> then sees that byte-compilation suggests to use the more commonly used
> "mode-line" and "email" instead of "modeline" and "electronic mail", why
> should she change only `Package Keywords` accordingly and not
> `Keywords', too?  (Assuming that she agrees that "mode-line" and "email"
> express what she intended to express, too.)

If package.el continues to issue warnings for stuff that is in `Keywords'
(not `Package Keywords'), then it is not playing fair.  In that case it
would have created its own sandbox (good) but continue to poke its nose
into the old community sandbox, kick sand around, and annoy its occupants
with bullying warnings and such (bad).

If not, then there should be no problem.  Keywords inserted in `Package
Keywords' should obey the new rules - or else warnings & helpful
electroshock will duly ensue, per spec.

If someone blindly copies existing non-package keywords from `Keywords'
to `Package Keywords', and if some of those flaunt the clean, Streng
Verboten rules of package.el, then the copier gets what s?he deserves:
appropriate insults (er, guidance) from package.el.

> She doesn't know that there are some people that don't want `Keywords'
> to be changed.  Or should the warning say something like that?

Yes, `Keywords' is not for package keywords.  That should be part of 
the message for users (the doc).  `Package Keywords', and only `Package
Keywords', is for package keywords, which have (whatever) strict
semantics.

Not a big deal.  Clean, tidy.  Should make parsing and controlling
by package.el easy, without stepping on any toes - no sand in eyes.

`Keywords' need not (& should not) be mentioned in the package doc.
But if it is, just say that it is lax - no special semantics.  The
message should be only that keywords related to packages belong in
`Package Keywords' - that's all.

There is no mention of `Keywords' in the current Emacs manual, and no
need to add any mention of it (IMO).  Search case-sensitively for
`Keywords' in the Emacs manual and - guess what? - you find hits only
for (drum roll...) `Package Keywords'.  Seems that Ms Manual has
already paved the way for my suggestion.

Oh, but the Elisp manual mentions `Keywords' in its discussion of
packages.  What it says there (node `Simple Packages') is only
specific to use of `Keywords' by package.el.  This text should
refer instead to `Package Keywords', of course.

The Elisp manual mentions `Keywords' also in node `Library Headers'.
And (guess what?) there the text mentions the use of `Keywords' by
`finder-by-keyword' - which is NOT and should NOT be limited to
packages as defined by package.el.  That is all as it should be.

Unfortunately, the description of `Keywords' in node `Library
Headers' has been updated to mention that it is now used also by
package.el.  That is inappropriate and should be cleaned up.
Instead of saying this:

  The name of this field is unfortunate, since people often assume
  it is the place to write arbitrary keywords that describe their
  package, rather than just the relevant Finder keywords.

The correct approach here is to use a new, NOT-unfortunate name for
package keywords, and continue to let `finder-by-keyword' and any
other longstanding code use `Keywords' as originally intended (no
special rules, syntax, or relations).

Just as finder.el is not (& should not be made to be) limited to
what is good for package.el (both `finder-known-keywords' and
`finder-list-keywords' predate package.el), so should file-header
keyword `Keywords' not be limited to package.el relevance.

>     The Package Keywords entry "modeline" is likely to mean "mode-line".
>     If you agree, change it accordingly but please let the Keywords
>     header as-is for the Olt Town's habitants peace of mind.

I'd say just mention what `Package Keywords' is for in the doc, and
not repeat the doc in each warning about package keywords.  But you
know better than I what warnings people should be scared with. ;-)



^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2015-04-21 15:44 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-15 22:38 Improving browsing and discoverability in the Packages Menu Artur Malabarba
2015-02-16  2:25 ` Stefan Monnier
2015-02-18 16:23 ` raman
2015-04-18 11:26   ` Ted Zlatanov
2015-04-18 13:25     ` Artur Malabarba
2015-04-18 13:25     ` Artur Malabarba
2015-04-18 21:11     ` raman
2015-04-18 23:05       ` Ted Zlatanov
2015-04-19  1:20         ` Alexis
2015-04-19  3:16           ` Stefan Monnier
2015-04-19  4:03             ` Alexis
2015-04-19 16:14             ` raman
2015-04-20  1:57               ` Stefan Monnier
2015-04-19 16:12         ` raman
2015-04-20  1:22           ` Ted Zlatanov
2015-04-20  9:02             ` Artur Malabarba
2015-04-20 15:18             ` raman
2015-04-20 15:23               ` Drew Adams
2015-04-21  0:20                 ` raman
2015-04-21  1:07                   ` Drew Adams
2015-04-19  2:59 ` Eric Abrahamsen
2015-04-19 14:58   ` Drew Adams
2015-04-20  8:38     ` Eric Abrahamsen
2015-04-20  9:26       ` Artur Malabarba
2015-04-20 10:17         ` Alexis
2015-04-20 11:30           ` Artur Malabarba
2015-04-20 14:32             ` Drew Adams
2015-04-20 17:32               ` Artur Malabarba
2015-04-20 18:17                 ` Drew Adams
2015-04-20 19:49                   ` Artur Malabarba
2015-04-20 20:30                     ` Drew Adams
2015-04-21  4:05                       ` Tassilo Horn
2015-04-21  5:25                         ` Drew Adams
2015-04-21  6:52                           ` Tassilo Horn
2015-04-21  9:04                             ` Eric Abrahamsen
2015-04-21 15:44                             ` Drew Adams
2015-04-20 14:03           ` Eric Abrahamsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).