Shawn Walker wrote:
Tom Mueller wrote:
Please see inline.
Shawn Walker wrote:
Tom Mueller wrote:
Shawn,
This still doesn't say how policies relate to the existing properties. Do policies and properties share the same namespace? If no, are existing properties that are policies move to be policies? Is the per-publisher property namespace shared with other publisher attributes? (e.g., can I have a publisher policy called "origin" that is separate from the origin attribute)

As I said before, the namespace issue is not within the scope of this proposal and is something that will be handled by upcoming changes to the ImageConfig object/class and file format.
It needs to be in scope. This is part of the definition of the interface. For example, if one does:

pkg set-property my-policy true
pkg set-policy -n my-policy -v false
pkg property

What will be the output?

I'll add example output.

Also, if one does:

pkg set-property send-uuid true
pkg policy -n send-uuid

Since there is a separate subcommand for these, I thought it was logical to assume that you couldn't use policies with properties and vice-versa.

I don't think it is necessary to explicitly state that a completely disparate subcommand would alter data unrelated to that subcommand.
Normally I would agree, except that in this case, some properties would be become policies (per the list you mention below).

What will be the output? What will be the behavior of the HTTP requests?

The behaviour of HTTP requests has nothing to do with the changes proposed here as no change proposed here affects HTTP requests to my knowledge.
Now, "pkg set-property send-uuid true" (or false) changes the behavior of all HTTP requests. After your change, will it? I assume not. So this definitely is a change in the behavior of HTTP requests?

With that said, I do not anticipate that properties and policies will share the same 'space' within the new ImageConfig.
Given that, what happens to the existing policies that are represented with properties?

As for which properties will become policies, I'll add the explicit list to the text.

I must have missed the request for an API; all that I saw was some discussion that you wanted to continue to have certain packages require acceptance for their licenses.

However, since the must_accept attribute is intentionally optional (to avoid unnecessary bloat in manifests), I don't believe it is possible to provide the API you request since the resulting logic would be faulty.

As I said before, it is difficult to provide compatibility with behaviour that was designed and implemented completely outside of the pkg(5) system.
I'm not asking you to provide compatibility.  I'm asking for visibility.

The visibility provided is based on the functionality provided. As I said before, as long as must_accept and must_display are optional, there is no reason to provide what was requested as the resulting use of that logic would be faulty.

I really doubt manifest bloat is a problem for licenses, given how few there are.

The point is to avoid specifying attributes unless they need to be. I see no reason to have a must_display=false must_accept=false on every single license action other than to preserve compatibility with functionality not provided by the pkg(5) system. For a single package, it may not represent much, but in aggregate, it is much harder to ignore.

Since the only reason this is an issue is because of a design choice made by a consumer of the pkg(5) system, I think it should be resolved by that consumer since there are many options available to do so without design intervention here.
Can you suggest even one? Short of parsing the manifest file, how can we preserve the existing behavior for old packages that do not have must-accept=true?


It is intentional that there is no symmetry between set-policy and set-property, out of necessity. Namely, that properties are not publisher specific, while policies can be.

The proposed policy subcommands as far as I can see, are consistent with each other.
The need for publisher-specific policies is questionable, and certainly not a reason for making the commands dissimilar. The "-p" could still be an option. And if there are publisher-specific policies, then set-property should probably have a publisher-specific case too.

I do not agree.
Not sure what you don't agree with - I assume it is the part about needing publisher-specific policies for licenses.

Do you also not agree that "-p" could be an option while the name and value are arguments?

Since licenses and related documents are about a relationship of trust, I anticipate that some users will choose to trust licenses from some publishers, but not others. I believe that empowering users for themselves is the appropriate course of action.

Also, we certainly do not need the ability to set multiple policies in a single command. That is just feature bloat, with the cost being inconsistency with the set-property command. Let's keep the interface simple.

Consistency between disparate subcommands is not a focus for me.
Please make it a focus.  This is essential for overall usability.

The more I think about it, the more important it is to have symmetry here. It is extremely frustrating to use commands that have seemingly arbitrary differences in command options/arguments between different subcommands. Image if we had -v for verbose on one command and -e for extra detail on another. Or if the package name on "install" was an argument but it was a -p option on uninstall. Another example is that in set-publisher, the name of the publisher to change is an argument, not an option.

Generally, options should be options, i.e., optional. For set-policy and unset-policy, the name and value are certainly not optional.

I believe that from a scripting or other perspective, it will be useful to administrators to specify multiple policy values using a single invocation of the pkg command.
Not useful enough to justify an inconsistency, especially when there is an easy way to write the script without that.

Regards,
Tom

Cheers,

begin:vcard
fn:Tom Mueller
n:Mueller;Tom
org:Sun Microsystems, Inc.;Update Center Software
adr:;;21915 Hillandale Dr;Elkhorn;NE;68022;USA
email;internet:[email protected]
title:Senior Staff Engineer
tel;work:877-250-4011
tel;fax:877-250-4011
tel;home:402-916-9943
x-mozilla-html:TRUE
version:2.1
end:vcard

_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to