On Nov 12, 12:39 pm, Peli <
peli0...@googlemail.com> wrote:
> ad 1) Do you mean some formal process like voting or so? Or discuss
> until everyone is satisfied? Or have a panel of experts who try to
> ensure that intents are as simple and lightweight as possible, and
> that additional customization is always possible through custom intent
> extras?
Oh, something simple. It should be formal enough that things reach a
resolution, but informal/lightweight enough that the resolution can be
reached fast.
One suggestion would be to have a voting period of e.g. X weeks,
during which >N votes need to be recorded and the draft gets turned
into a standard if the majority of the votes approves of the draft.
Voting can include suggestions for improvements, which can lead to a
new draft revision and a new voting period.
Boost has something of the sort (
http://www.boost.org/development/
submissions.html ) - they're happy enough with it, I think.
> ad 2) I agree, there should a solution for this in the new intent
> registry that Friedger wants to create. There should also be a
> distinction between "standard" and "implemented", because for
> developers who want to use an intent, the most urgend question is if
> an application exists already that can handle an intent.
Good point!
> As far as I understand, revisions are not intended for intents. Once
> you have an intent standard, it is best never to touch it again. If it
> requires modification, it was not a good intent in the first place.
>
> Customization and expandability are always possible through additional
> intent extras, but the basic intent should be simple and not require
> modification (like VIEW + URI).
Maybe I view this from a slightly skewed perspective, but to me the
combination of Intent name and Extra name/value type describe an
interface, with the former being equivalent to a method, the latter
equivalent to parameters.
It's generally considered to be fine to add optional paramaters,
provided that leaving them out does in no way change the expected
behaviour. Once parameters become non-optional or change the expected
behaviour if not provided, you have an incompatible change to the
interface.
At that point, you can either come up with a completely new name for
that incompatible interface, or add a version number to it. It's
really much the same thing in that the combination of name+version is
the unique identifier, rather than the name being unique in itself.
But with name+version you at least signal that two unique identifiers
are related in concept, but not don't necessarily work the same way.
Jens