Subject: bug#15108: 24.3.50; Package dependency documentation

From: Tom Willemse <[email-masked]>
Date: Fri, 16 Aug 2013 10:06:38 +0200

Drew Adams <[email-masked]> writes:

>> > You can use `Package Requires ((foo "0"))' as a workaround, but it's
>> > silly that you have to do that.  If a library is not versioned, or if
>> > for some reason any version of it will do for the package that requires
>> > it, it should be possible to use just `Package Requires ((foo))'.
>> 
>> Would values of either `foo' for just a single package dependency, `(foo
>> bar)' for packages without version dependencies and `(foo (baz "1.1.0")
>> bar)' for mixed values be OK? That would be my preference, but perhaps
>> this is to complex.
>
> Are you asking to be able to use (foo (baz "1.1.0") bar) as an
> alternative to ((foo) (baz "1.1.0") (bar))?
>
> IOW, `foo' instead of `(foo)' or (foo "0")?  Sounds OK to me.  Maybe
> someone else knows a reason why that would not work or be a good idea.

It's not that I desperately want to use that, it just seems cleaner to
me to be able to omit parentheses when they're not needed. But if
someone else knows a reason not to do it, or if everyone else just
thinks it's messy or complicated, that would be reasons not to look into
that direction. I'm asking for opinions on the idea that I had.

And yes, you seem to understand my meaning correctly. In case anyone
else didn't understand I'll try to illustrate:

    ;; Package-Requires: foo

Would just be a dependency on any version of `foo',

    ;; Package-Requires: (foo bar)

Would be a dependency on any version of both `foo' and `bar',

   ;; Package-Requires: (foo (baz "1.1.0") bar)

Would be a dependency on any version of both `foo' and `bar' and version
1.1.0 of `baz'.

A single package with a version could also be an option, like so:

    ;; Package-Requires: (baz "1.1.0")