← Back to team overview

launchpad-dev team mailing list archive

Re: visibility vs. information_type for Products


On 09/18/2012 10:44 AM, Curtis Hovey wrote:
> On 09/17/2012 04:35 PM, Deryck Hodge wrote:
>> I'd like to use information_type for a few reasons.
>> **Consistency with other parts of the code**
>> It doesn't make sense to me to have different names for things that
>> are basically the same concept in our code.  it's simpler and more
>> consistent to stick with information_type.  Other devs who come along
>> won't have to get their head around how visibility and
>> information_type are related, even basically the same, yet somehow
>> different.
> I am -0 with this. It disagrees with PersonVisibility. Do you want to
> replace PersonVisiblity with InformationType too.
> InformationType represents the content the content of an artefact.
> Projects and teams are not documents/parts. I agree that three of the
> enums do work with projects and teams, but two imply the project or team
> exists to create maleware or phishing scams. We will not except that.
> Projects and team might use a base class or subclass that only contains
> the three sensible enums. Otherwise the db and applications needs
> constraints to ensure non-sense is not excepted.

The crux of the issue is that one true InformationType enum really
duplicates my flawed logic for bugs and branch information types. I did
not consider blueprints and the case for planning work in secret
temporarily, which is why we had to add another enum.

There are groups of people interacting with a project and they use
different information types.

    * Project Creators use Public, Proprietary,
      and Embargoed for planning.
    * Project Community uses Public, Private (user), Private Security

Project, teams, and blueprints originate from the creators, so they can
only be Public, Proprietary, and Embargoed

Bug can be reported by the community and create branches to address
these bugs, so they use Public, Private (user), Private Security
The creators also work with these bug types and they also create the bug
types that they use for planning.

We might thing of this as CreatorInformationTypes and
CommunityInformationTypes. We might think if bugs and branches using a
union of both types, but other objects just use the first type.

There are two other types of groups that interact with projects that we
should not forget:
    * Project Customers use Public and Proprietary
    * Project Contractors use Public, Proprietary, Embargoed,
      and Private Security.

Curtis Hovey

Attachment: signature.asc
Description: OpenPGP digital signature

Follow ups