← Back to team overview

ubuntu-appstore-developers team mailing list archive

Re: Adding "applications" to manifest file

 

On 07/12/2013 03:31 PM, Ted Gould wrote:
> 
> I think that it has become clear that we need a way in the manifest file to
> describe a package that has multiple applications in it.
> 
> I'm going to suggest that we add an entry to the root item called "applications"
> that contains and associative array.  The index to that array is the name of the
> application and the value is an object of properties describing it.  Only one of
> which I'm suggesting today, "type" with an only valid value of "desktop".
> 
> I think that we also need a way to define the primary application that should be
> used when referring to this package.  For that I'm suggesting the key
> "primary-application" and a value that is a valid application name.
> 
> As an example, that would make the camera app look something like this: 
> /(security section purposely left out)/
> 
>     {
>         "name": "com.ubuntu.apps.camera",
>         "version": "2.9.1daily13.06.13",
>         "maintainer": "Ugo Riboni <ugo.riboni@xxxxxxxxxxxxx>",
>         "title": "Camera application",
>         "framework": "ubuntu-sdk-13.10",
>         "applications": {
>             "camera-app": {
>                 "type": "desktop"
>             }
>         },
>         "primary-application": "camera-app"
>     }
> 
> 
> Then the package would have a file, at its root, called camera-app.desktop that
> would have the additional information about that application.
> 
> Does that sound good to you folks?

I'm going to add the security section back in because I think it is worth
considering the full manifest:

     {
         "name": "com.ubuntu.apps.camera",
         "version": "2.9.1daily13.06.13",
         "maintainer": "Ugo Riboni <ugo.riboni@xxxxxxxxxxxxx>",
         "title": "Camera application",
         "framework": "ubuntu-sdk-13.10",
         "applications": {
             "camera-app": {
                 "type": "desktop"
             }
         },
         "primary-application": "camera-app",
         "security": {
             "profiles": {
                 "camera-app": {
                     "policy_groups": [
                         "camera",
                         "location"
                     ],
                     "policy_version": 1.0
                 }
             }
         }
     }

Looking at this, it is clear that "applications" and "profiles" are similar--
keys for the applications with properties associated with the key.

I am not overly fond of the "camera-app" key repeated in two places. It does
have one benefit in that it makes it clear which profile goes with which
application, but we've tried very hard in developing the security section of the
security manifest to not duplicate anything, because a developer will come along
and shoot himself in the foot by changing one and not the other.

I had assumed that the profiles dictionary would provide you with what you
needed-- its keys are the same as the keys in your proposed "applications". I
also figured that the primary-application would simply be the first listed in
the manifest but I grant that this scheme is limited because you don't get to
define any additional properties.

It may make sense to do something like this:
         "applications": {
             "camera-app": {
                 "type": "desktop",
                 "security": {
                     "policy_groups": [
                         "camera",
                         "location"
                     ],
                     "policy_version": 1.0
                 }
             }
         },

but then security and application properties are comingled, and this is
something we've also tried to avoid thus far. I'm not sure what to suggest atm,
but I will make the observation that there are now three types of properties
being declared in the manifest: package properties (click), application
properties (lifecycle) and security properties.

-- 
Jamie Strandboge                 http://www.ubuntu.com/

Attachment: signature.asc
Description: OpenPGP digital signature


Follow ups

References