Re: Public contributor profile pages - Mailing list pgsql-www

From Magnus Hagander
Subject Re: Public contributor profile pages
Date
Msg-id CABUevExk=h0gLboP8D0XQk9kv-HSDkM30tv4zoHZvuhznXfUvg@mail.gmail.com
Whole thread Raw
In response to Re: Public contributor profile pages  (Melanie Plageman <melanieplageman@gmail.com>)
List pgsql-www


On Wed, 17 Dec 2025 at 16:18, Melanie Plageman <melanieplageman@gmail.com> wrote:
Thanks for taking a look! A few follow-up questions before I edit the patch:

On Wed, Dec 17, 2025 at 9:03 AM Magnus Hagander <magnus@hagander.net> wrote:
>
> AFAICS with this patch, *every* user who visits their profile gets a Contributor object created. And they do that even if they don't save their profile? And the contributions part of the profile shows up for all users, whether they are contributors at all or not -- not just "all levels of contributors". That doesn't seem right, surely only those who are recognized at *some* level should be getting that, and the change is to list all levels, but not random non-contributors? (And even if it's shown for non-contributors intentionally, we shouldn't create a database record for people just viewing things)

What we are envisioning once we add "Contribution Badges" (or whatever
we call them) is that anybody who is approved for a badge (e.g.
volunteered at PGConf EU) would have that badge listed on their
profile. These may or may not be considered "Recognized Contributors",
and we aren't sure whether or not their names will be listed on the
Contributors Profile page or another page or not linked to a main pgo
page at all. But either way, it makes sense for these profiles to be
publicly viewable since they were awarded to the person.

If they are not based on the recognized contributors, they should probably not be part of that in the data model either. But in particular, we shouldn't start creating empty contributor profiles before we even *knoiw* that it would.


Since we don't have the badges yet, we are considering the text of the
"Contribution" field to be the equivalent. So anyone that lists
"Contribution"s should have a publicly accessible profile. It isn't
approved by a moderator like badges would be, which does make it more
fraught, though.

So any user without any confirmation can just add themselves as a contributor, without even moderation, and publish data? That sounds like a *really* bad idea, tbh.

If it's data published by users where we have at one point added them to the contributors list and therefore pre-moderated to some point that is reasonable. But allowing random people to add records and then edit them and then it turns out to be published is going to be a hard no -- we've spent many hundreds of hours dealing with that on the wiki for example, and we will definitely not open up another venue for that. If it's things that not-specifically-approved users can add, then it *must* be moderated.


The reason I thought every user profile should have a Contributor
object is that 1) it seemed easier from an implementation standpoint
than creating one only once someone has edited the contribution fields
of the form 2) most of the use cases for a pgo account seem related to
contributing (signing up for mailing lists, etc) -- I don't know if
they are used for other things like downloading postgres binaries etc.

No, the vast majority of pgo accounts are not in any way contributors. Subscribers to mailinglists, by a large majority, don't post/contribute. Attendees of conferences are mostly consumers and not contributors, etc etc way outnumber those who are actually logging in to the sites that are for contributors. We definitely don't have 175,000+ contributors...


Is there a good way to avoid making the Contributor object unless they
edit the "Contributions" field? Maybe there should be some kind of way
of saying "I contribute to Postgres" and "Contributions" is a required
field and then that makes the Contributor object and also kicks the
profile to some moderation queue for the Contributors team?

If the goal is the users can add themselves rather than the contributors team adding them, then yeah I think the process should be more similar to how users add a news article for example, or an organization (though they should have a 1-1 mapping of course). That is, it should be a separate "register me as a contributor" button which takes them to a separate form that specifically creates it. This can then also easily be moderated -- see the use of moderation mixins on for example organisations or professional services (news are a little special because they have dual-moderation, and that seems like overkill here).
 


> Also, when making changes to a model that only changes fields that aren't actually in the database (such as the change of help_text), instead of making a migration for that it's better to "backpatch" it into the latest existing migration. Otherwise we just collect a lot of no-op migrations that over time will start costing time and annoyance.

The latest existing migration that includes that field or just the
latest existing migration?

The latest one that includes that field. Doing that makes the "manage.py makemigration" no longer think there are any changes and stop emitting anything for that object.


> As for the questions - I think we should absolutely do opt-in, and I do think it makes sense to auto-opt-in the current major contributors since "it's been like that forever and they haven't complained", but listing the others and in a more visible way there are sure to be some who might not want it. In particular, maybe we should make the listing of *email* a separate opt-in/opt-out? That is you can opt-out of being listed completely, or you can say "list me, but not my email"?

So there would be a separate opt-in for being listed on the recognized
contributor page and for having a public individual contributor
profile? And we would only auto opt-in major contributors to the
public individual contributor profiles?

When writing that I was not aware that you were intending to have both a "recognized contributor" and a "self-claimed contributor". That does change it a bit. If it's a self-claimed contributor then it doesn't make much sense to opt-out.


And email display would be separately opt-in and if you opt-in it
displays on both the individual contributor profile page and on the
main recognized contributor profile page for major contributors and we
would auto opt-in email display for major contributors?

I think Christoph made a good point about this -- once the contributor profile requires an account, which it does in order to get published here, they can opt out by just changing their email to being empty. It's only for contributors that do not have an account connected that *we* need the email (so we can reach them), but with the discussed plan those wouldn't be listed anyway  since a username is needed in order to get listed. So that should leave us without needing a separate opt-out.
 

> I've thought a bit about it and I do think listing the profiles with the username in the URL as you have done is in the end good. I don't think people would care about exposing that one -- and it's already exposed on for example the commitfest app. But based on that I would go with "does not show at all if they don't have an account". They won't be able to edit any information on it anyway, and if they care enough to do that they will create an account. We will presumably continue to list them in the list of contributors, just not provide a details page.

That makes sense. Maybe we should start calling the Contributor
Profiles page [1] the Recognized Contributors page or Sustained
Contributors page instead of the Contributor Profiles page to
disambiguate it from individual contributor profiles. If only to make
spec'ing out this feature easier.

Yeah, I think that makes sense. If we're trying to add a whole new concept, we shouldn't try to force it in under the same name/umbrella. Let's make it clear.


> I wonder if we really need a separate "report inappropriate profile"? We should be getting notifications for them, but in particular if we are seriously worried about this case, we should make the records moderated. But these are known contributors - I think we can trust them?

I think we want people who are not recognized significant or major
contributors to be able to have profiles so that they can build them
up and eventually make the case for being a recognized significant or
major contributor. This would significantly increase the number of
people with profiles so moderation may get tricky.

Per above, if it is a field that any user can directly edit and it goes to publication, it must be moderated. That's a hard requirement. Before we made the whole "make me an editor" requirement for the wiki, for examples, we had upwards of 10,000 new accounts signed up every day just to post spam when it hit the peak.

We might need to add more moderators for it, but it needs to be moderated :)


What does it mean that we would get notifications for them? Is "we"
the contributors committee?

Right now, there's just the one moderation team and address that gets it for all types of objects. But it would probably be relatively easy to split that up so there could be multiple moderation-and-notification teams.


I would be okay with having them moderated if we thought the volume
would be like one a day (with more at the beginning). And maybe if it
is more, we could add another community member outside the
contributors committee to help moderate.

I don't know what an expected volume would be for "real" contributions, but even one per day sounds high to me -- obviously once you are past a peak when it's new. And as long as they don't go direct-to-publish spam publications tend to be fairly low, but they can certainly reach one or a couple per day. It's only with direct-to-publish we end up with thousands.
 
//Magnus

pgsql-www by date:

Previous
From: Célestin Matte
Date:
Subject: Re: pglister: pgarchives does not synchronize subscribers with email delivery disabled (proposed patch)
Next
From: Joe Conway
Date:
Subject: Re: Wiki editor request