phetsims/chipper

Open GitHub Discussions for the Organization

samreid opened this issue · 14 comments

For the POSE grant project, we have been discussing the best way to support community discussions. We currently have the Google Group https://groups.google.com/g/developing-interactive-simulations-in-html5 and have discussed starting a discord channel. Another option would be to enable the "Discussions" feature in select GitHub repos. For instance, as I type this comment, chipper shows a "Discussions" tab which is not yet enabled:

image

Here is a third party open source project "SWC" which uses the Discussions GitHub board:
https://github.com/swc-project/swc/discussions

Should we enable this? If so, for which repos?

Maybe https://github.com/phetsims/phet-info would be a good repo to enable discussion on since it is where the documentation (such as the PhET Development Overview) is centralized.

Assigning devs that we have discussed this with for the POSE grant for feedback, and also tagging @pixelzoom since he has been involved in the Google Group.

Some advantages of GitHub Discussions:

  • More closely integrated with our open source projects
  • Better code example highlighting
  • Categories
  • Upvoting
  • Looks more modern/well-designed
  • Indicates whether questions have been answered or not

Disadvantages

  • Cost to move (maybe that is minimal).
  • Time to decide on which repos to enable, community guidelines, moderation, etc.
  • Commenters need to have a GitHub account (maybe that is OK?)

Should we enable this? If so, for which repos? ...

Disadvantages
...

You didn't mention the upfront cost to develop processes, or the ongoing cost to manage discussions. GitHub Discussions will only be effective if PhET commits to incurring the cost to respond to discussions in a timely and "public facing" manner. And before enabling GitHub Discussions, there should be an internal (PhET only) discussion about what that means, who will manage it, etc.

Maybe https://github.com/phetsims/phet-lib or https://github.com/phetsims/phet-info would be good places to centralize discussion.

At today's conference, we discussed enabling GitHub discussions. We could start with it in one repo like phet-info to learn about it and get used to it, but ultimately enable it for every repo. Google group and phethelp questions would be redirected to phet-info discussions. Great docs and 60-second movie about it here: https://docs.github.com/en/discussions

For this 2-week iteration, a subteam will be working on this issue.

I saw this example of how a CLA bot is used for pull requests: https://github.com/microsoft/GenerativeImage2Text

I've created a Google Doc for coordinating the draft for the Welcome Post in the Discussion and some open questions for discussion: https://docs.google.com/document/d/1DIPrvTXOmbLxdQHR6023o8paDJ0CQmTnhZi0n3066NU/edit?usp=sharing

Copying over some notes from the Project Board Draft Card for the specific action items related to this issue.

Iteration Goal (2/24-03/09/2024): Investigate, enable GitHub Discussions in scenery-lab-demo, and create code of conduct for users of board.

Related issue: #1347.
SR: I sent this message to @jonathanolson:

Hi Jonathan, my subteam is investigating adding the GitHub Discussions for https://github.com/phetsims/scenery-lab-demo but I saw that I do not have access to the “Settings” tab for it. Can you please help us check its permissions?

2/24/23: Here is some documentation about github discussions: https://docs.github.com/en/discussions. SR and BF are going to look into enabling this and then bring it back to this sub-team.
2/27/28: BF and SR have started and created a test repo to test out Github discussions. To be determined: Should we have a repo level discussion board or a project level discussion board?

There are two templates for CODE_OF_CONDUCT.md in GitHub. I've created the more applicable one (Contributor Covenant) from the template here. While we look around, this will likely serve as a fine starting point to enable the Discussions at the organization level.

https://github.com/BLFiedler/test-discussions/blob/main/CODE_OF_CONDUCT.md

edit: Microsoft also adopts nearly word for word the same code: https://opensource.microsoft.com/codeofconduct/

Also, two other sources:
WeAllJS customized and added to the Contributor Covenant: https://wealljs.org/code-of-conduct
LGBTQ in Tech has some additional humanity language we might want to adopt: https://lgbtq.technology/coc.html

From a thread on slack today with @pixelzoom @samreid and @BLFiedler :

Brett Fiedler
  [20 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677460016516499)
Set up a test repo to check out the admin interface for Discussions. Sent a collaborator invite to you 
[@samreid](https://phetsims.slack.com/team/U6DKKJ2FN)
. Here's the default page with the template pinned welcome post and default categories.
image.png
 
image.png


:+1:
1



Brett Fiedler
  [20 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677460559767869?thread_ts=1677460016.516499&cid=C04LS01BSLB)
When we move toward activating Discussions more broadly, we should consider the worth of Organization Discussions with well thought out categories vs. individual repo discussions with limited categories. If we're looking to full sail replace the google group, then the Organization Discussions may be the better option. Brief aside - might want to make it clear if this is an avenue for "sim suggestions" or if we intend to keep that directed toward e.g., phethelp


Sam Reid
:house_with_garden:  [20 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677460755458389?thread_ts=1677460016.516499&cid=C04LS01BSLB)
It may also be an “amount of traffic” question.  When we start out, we may want to centralize by using the organization-centric one.  Then if too many conversations are repo-specific, split it up?  But we have 219 repos and that seems pretty crazy to imagine 219 discussion boards. (edited) 


Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513010863599?thread_ts=1677460016.516499&cid=C04LS01BSLB)
It also seems crazy to image that anyone outside of PhET could understand (or should need to understand) the difference between the 219 repos.  (I also think PhET has too many repos, but that’s another discussion [no pun intended].)  Given a choice of too many discussions, people are likely to be intimidated, post to the wrong Discussion, have a difficult time locating prior posts that are relevant to their need, etc.
So I would start with 1 Organization Discussion.  If it’s successful and results in too much traffic, then consider getting repo-specific.  The nature of posts to the Organization Discussion is likely to inform how that gets broken up into repo-centric Discussions —  or maybe it will suggest that GitHub is the wrong tool for this job. Which brings me to this point:
Even if PhET only had a dozen repos, there’s an inherent problem with organizing Discussions by repo.  Repos are organized by software-development needs. Discussions should be organized by community discussion needs, which I would venture are unlikely to be the same.  So if GitHub Discussions are organizable only by repo, you many find that GitHub is not a good fit. (edited) 
:+1:
1



Sam Reid
:house_with_garden:  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513187913779?thread_ts=1677460016.516499&cid=C04LS01BSLB)
I agree completely, may I please copy these remarks to https://github.com/phetsims/chipper/issues/1347 ?


Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513194035579?thread_ts=1677460016.516499&cid=C04LS01BSLB)
I’m also guessing that GitHub organizes Discussions by repo because they’re assuming that discussion will be amongst software developers, about the software in the repo. Is that true of what we’re trying to build for PhET?  If the community is not software developers (mostly or exclusively) then I think GitHub is the wrong tool for discussions.


Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513235241749?thread_ts=1677460016.516499&cid=C04LS01BSLB)
Yes, feel free to quote me :)


Sam Reid
:house_with_garden:  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513252101159?thread_ts=1677460016.516499&cid=C04LS01BSLB)
 I’m also guessing that GitHub organizes Discussions by repo
GitHub allows you to enable discussions “per repo” or you can enable discussions “for an entire Organization” (not repo-centric)


Sam Reid
:house_with_garden:  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513304136239?thread_ts=1677460016.516499&cid=C04LS01BSLB)
If the community is not software developers (mostly or exclusively) then I think GitHub is the wrong tool for discussions.
Whether or not we need a discussion channel for teachers and users, we still need one for software/development.


Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513310526599?thread_ts=1677460016.516499&cid=C04LS01BSLB)
Can you have multiple Organization Discussions?


Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513405097969?thread_ts=1677460016.516499&cid=C04LS01BSLB)
Looks like you can have 1 organization discussion. From https://docs.github.com/en/discussions/quickstart#enabling-github-discussions-on-your-organization
When you enable organization discussions, you will choose a repository in the organization to be the source repository for your organization discussions. You can use an existing repository or create a repository specifically to hold your organization discussions. Discussions will appear both on the discussions page for the organization and on the discussion page for the source repository.
:+1:
1



Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513519572339?thread_ts=1677460016.516499&cid=C04LS01BSLB)
… and unfortunately it gets associated with a repo.  So if the organization discussion gets too noisy, your next option is per-repo discussions.  I see no option for discussion categories that are independent of repo.  Yes, you could create dummy repos for discussion categories.  But if you need to do that, then I would again say that GitHub is the wrong tool. (edited) 


Sam Reid
:house_with_garden:  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513602333439?thread_ts=1677460016.516499&cid=C04LS01BSLB)
What are some good alternatives to GitHub Discussions?


Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513678698729?thread_ts=1677460016.516499&cid=C04LS01BSLB)
Imo Google Groups has been a fine platform for discussions. The problems PhET has had are unrelated to Google Groups. They’ve been due to a lack of support for the Group from PhET.


Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513821851639?thread_ts=1677460016.516499&cid=C04LS01BSLB)
Whatever tool you use, it should be aligned with the demographic of the community that you want to build.  Have you identified that demographic? Is it aligned with GitHub  discussions?


Sam Reid
:house_with_garden:  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513857790489?thread_ts=1677460016.516499&cid=C04LS01BSLB)
Is there an emoji to say, “I hear what you are saying even though I disagree”?  I’m worried :+1: may be misconstrued as “I hear what you’re saying and I also agree”.


Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513918808849?thread_ts=1677460016.516499&cid=C04LS01BSLB)
Understood. Just expressing my concerns.   And would love to hear answers to my questions:
Have you identified that demographic? Is it aligned with GitHub discussions?
(edited)


Sam Reid
:house_with_garden:  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677513985870479?thread_ts=1677460016.516499&cid=C04LS01BSLB)
“People that want to clone the PhET repos, tinker with things, and submit pull requests to fix bugs or add new features”


Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677514008024409?thread_ts=1677460016.516499&cid=C04LS01BSLB)
Because what I’ve inferred from comments above is that you want a discussion platform that supports software developers, teachers, researchers,… A broad community.  My concern is that GitHub may not resonate with parts of that community.  And you don’t want the choice of discussion platform to be a barrier to discussion and building community. (edited) 


Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677514072152039?thread_ts=1677460016.516499&cid=C04LS01BSLB)
 “People that want to clone the PhET repos, tinker with things, and submit pull requests to fix bugs or add new features”
OK.  If that’s indeed the community, then I retract my concerns about GitHub.
:+1:
1



Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677514124768589?thread_ts=1677460016.516499&cid=C04LS01BSLB)
Does this project have a “design document” or issue somewhere, with a statement about who the community is, what the goals are, etc?


Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677514152592729?thread_ts=1677460016.516499&cid=C04LS01BSLB)
And is everyone on the same page about the community demographic?


Sam Reid
:house_with_garden:  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677514226437009?thread_ts=1677460016.516499&cid=C04LS01BSLB)
I think we only have https://github.com/phetsims/chipper/issues/1347 and https://github.com/BLFiedler/test-discussions so far, and some notes in the POSE meeting notes.  I don’t suspect we are all on the same page about demographic.  Would you like to be invited to zoom meetings as [#dim-sum](https://phetsims.slack.com/archives/C04LS01BSLB) begins work on that during this iteration?


Chris Malley
  [5 hours ago](https://phetsims.slack.com/archives/C04LS01BSLB/p1677514422005859?thread_ts=1677460016.516499&cid=C04LS01BSLB)
I don’t have the time to be involved in the meetings. But I would recommend identifying the discussion community before choosing the tool to build that community.  What you’re doing now feels a little like designing a sim before you’ve nailed down the target audience and learning goals.
In the meantime, exploring GitHub Discussions seems useful.  I just wouldn’t devote too many resources to building something out — that feels premature. (edited) 
:+1:
1

TO DO for Discussions

  • Create Welcome Post with targeted language to: Developers, Open-source contributors, Teacher-developers. Format as Markdown.
  • Finalize categories for Discussion (please finish):
    • Announcements
    • General
    • Q&A
    • (Ideas or Suggestions)
    • Show and Tell
  • Choose CODE_OF_CONDUCT.md template and make any modifications
  • Create phetsims/community repo
  • Create CODE_OF_CONDUCT.md following GitHub specified steps and
  • Edit and provide link to CODE_OF_CONDUCT.md to the Welcome post.
  • Open an Organization Discussion and center it on the phetsims/community repo, paste in Welcome Post (markdown)
  • Change Categories
  • TO DISCUSS (make a post to Google Group pointing developers in this direction. Sunset Google Group (lock posts?).)

3/1/23 Dim Sum team notes:

We will schedule a sub-team meeting to review this 3/1/23 at 12 MT.

3/2/23 Dim Sum team notes:

BF iterated based on feedback from yesterdays meeting. BF and SR will meet again soon.

3/3/23 Dim Sum team notes:

A ~30 minute discussion will occur for next steps.

The core needs of this issue have been accomplished by team Dim Sum.

A few action items around structure and management of the repo have arisen, which have been logged in the POSE meeting notes for later issues.

The remaining step is to enable Organization Discussions and select phetsims/community as the repo to house the Discussion for phetsims, but this will happen with action by the POSE leadership team. We also need to make decisions about the Google Group. Issue to remain open until then. I will leave myself assigned for that task.

Enabling organization-level discussions completed by @kathy-phet.

image (1)
image

Issue complete! Migration of Google Group is happening in another issue (phetsims/community#5)