Skip to:

Opened 14 years ago

Closed 8 years ago

#1493 closed enhancement (no action required)

Deprecate Friends component and replace with Personal Group type

Reported by: johnjamesjacoby's profile johnjamesjacoby Owned by: johnjamesjacoby's profile johnjamesjacoby
Milestone: Priority: major
Severity: normal Version:
Component: Friends Keywords:
Cc: apeatling, johnjamesjacoby


Since "friends" are just a group of users, the thought is you could ditch the "friends" component all together in lieu of letting users create their own personal groups, where they pick who's in them rather than people just joining them.

People could request membership the same as they do now, except with this method "friends" reaps the benefits of everything the groups API can do. This would solve the group activity feed/list/filter issue also, since my private groups of friends would just show up as another group to view and post to.

It would solve Jeff Sayre's user relationship issue too, because then he could create 10 private groups and call them what he wants and put people in them however he wants.

Our fear is that this might over complicate the groups component, so making the UI easy to understand is critical if we go this route. It also blurs the lines as to what "groups" actually represent.

What I notice on is that when people join the site, they immediately do three things. Check out the activity wall, join groups, and add friends. This would simplify the group/friend process and make it a one shot deal.

Other open source software works similarly. phpBB uses groups in a way that works on both an Access Control level, and a friends/foes/ignored users type of level.

If we introduced a "system" group type, you could basically have site-wide moderators, site-wide contributors, etc... Groups of users that have their own forums, activities, members, and scopes.

My theory for how this works is a lot like Twitter's lists, only they work in both directions. Not only is it a group of people that I know, the people I've added to that group now can talk back and forth to one another because I've added them as a "friend." It's a way for my circle of friends to talk using me as the center.

In the group creation process, I just imagine seeing an extra option for a "personal" group type, and maybe a "system" type if we expand it that far.

These groups act like hidden groups, except people can request to be in them, as well as the group admin being able to add anyone to the group they wanted.

DB migration wouldn't be too hard. Just make new groups called "friends" for each user, and add the user_id's that everyone already has as friends.

URI's would need to be mapped away from /groups to /members/john/groups/group_name instead.

The "friends" component then could be replaced with something similar to the "follow/followers" model of Twitter. Something a little lighter and less meaningful than a group or a friend.


Change History (12)

#1 @mikepratt
14 years ago

JJJ - I have many thoughts. I hope some of them help! I think this is an idea that NEEDS to be discussed on the forums and not in TRAC. Trac isn't a great tool for this and I don't subscribe to Andy's idea that if the conversation gets to dev'y then it scares folks. If that's the case, then all we need to do is have Dev group on

Look for my long forthcoming comment on the forum thread.


#2 @johnjamesjacoby
14 years ago

The reason I refer people to the trac is for developers to monitor the conversation and be able to document, patch, and branch it, and add it as a specific enhancement or feature in our development cycle.

The forums are mostly for supporting the software itself and showcasing extensions of it. Development of the core is better in the trac because we can open, close, and more closely relate the dev talk to dev code, patches, revisions, and changesets.

Also people pay closer attention to the forums and sometimes things are taken out of context or too seriously as being fact instead of theory. Trac tends to be taken more as theoretical dev discussion that doesn't get anyone too excited. :D

#3 @DJPaul
14 years ago

I agree with most of the points in these posts - and I'm not sold on this idea as it stands.

Specific points:
MrMaz; "Friends [or other types of relationship] are one-to-one mappings. Groups are one-to-many."
Mike Partt; "...friends are just groups of users. But that doesn't make them Groups."

"…could be replaced with something similar to the "follow/followers" model of Twitter"; moving relationship mapping into the Groups component is not the only way to achieve this and so shouldn't be held up as a reason for such a change.

"...reaps the benefits of everything the groups API can do"; this is extremely wooly and vague. I need specific examples -- in the way that the Friends/Friends workflow is currently -- to discuss this.

Mapping friend URLs to something like /members/john/groups/friends/ looks horrible. Read the URL backwards, it doesn't make sense for this context; that URL to me is saying "list of friends in all groups that John is a member of" rather than "this is John's friends."

Mike Pratt comments on the forum thread, "the friend group setting [for SWA & Personal Activity filters] could easily be done in the context of merely "grouping" your friends. No need to make them part of a "friend" group." I think this is exactly right. Think Site Wide Tags.

#4 @erich73
14 years ago

Talking about "grouping" of friends into different Group-folders, like e.g. "family, work colleague, customers, suppliers, etc." - this brings me to the following feature which would be required:

I am building a website with 5000 different Groups, like a company-directory.
So giving each company its own "Group".
How to categorize a big list of Groups into different categories ?
Like I want to sort this big list of Groups by industry-specific areas.

#5 @windhamdavid
14 years ago

jjj, I'm sold. This is very insightful point. (from the vantage of a behavioral psychologist) It makes 'friends' more powerful and oblique at the same time. Friends will consolidate perfectly in the groups api while opening up the more dynamic (not "less meaningful') 'follow/follower' model.

#6 @cnorris23
13 years ago

  • Component set to Friends

#7 @DJPaul
13 years ago

  • Milestone changed from Future Release to Awaiting Review

#8 @johnjamesjacoby
13 years ago

  • Milestone changed from Awaiting Review to 1.4
  • Severity set to normal

Moving to 1.4 milestone.

#9 @boonebgorges
13 years ago

I'll have to do some thinking about this in detail, but my initial thought is that just because Google + does it does bot mean that we have to do it too. I would rather see a proof-of-concept plugin first.

#10 @DJPaul
13 years ago

  • Milestone changed from 1.6 to Future Release

#11 @sooskriszta
11 years ago

Would probably be easier to do (or irrelevant, depending on how you look at it) once groups are changed to custom taxonomies.

#12 @DJPaul
8 years ago

  • Milestone Future Release deleted
  • Resolution set to invalid
  • Status changed from new to closed

Closing as no traction. Can re-open for discussion if someone wants to rejuvenate the idea.

(For what it's worth, I was thinking about this a few months ago and I think it might have some traction in the far future if it's what we wanted to do).

Note: See TracTickets for help on using tickets.