Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable GitHub Discussions in GIP as an alternative to making a formal proposal #2069

Closed
Xrayez opened this issue Jan 4, 2021 · 10 comments
Closed
Labels

Comments

@Xrayez
Copy link
Contributor

Xrayez commented Jan 4, 2021

Describe the project you are working on

Goost Godot Engine extension.
Discussing new features for Godot development.

Describe the problem or limitation you are having in your project

See proposed changes such as #1476. The problem is that there might be a lot of ideas which might not be good fit for Godot development specifically, and makes it problematic and creates unnecessary maintenance burden for the core developers. I believe a lot of proposals in GIP won't be implemented in core, but this doesn't mean that features cannot be implemented via modules and plugins by the rest of the community members.

Most people do not even properly answer the "Describe the project you are working on" question, and even the core developers choose to omit it just by typing: "Godot Engine"... Despite the fact that the development philosophy behind Godot is "extremely pragmatic, with focus solely on solving problems": #575 (comment).

See proposals such as #2333 which are examples of open-ended discussions.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

GitHub has recently implemented Discussions feature which can be enabled for GIP repository. Enabling this feature allows to better focus on proposals which truly matter for Godot, because:

  1. Non-technical proposals are going to end up in Discussions (not always the case, but some will).
  2. Discussions can be used both as pre-approval stage (suggested in Defining the proposals / GIP process #1 (comment)) and a place for gaining feedback/interest in the community before writing technical proposals and further approved, which would naturally increase the approval rate significantly. See also Provide a better platform for polling community about features #2055.

And yes, there's still maintenance involved with moderating discussions, but I believe it's just a matter of properly organizing the existing workflow (which is messy currently, if you ask me).

It's also going to be different from Godot Forums because the platform shouldn't be used to ask for programming help, but to figure out whether it's possible to do something in the first place (due to limitation of the existing feature or the absence of a feature). If not, that's where a proposal can be created which would be already based on a use case, the very thing which "Describe the project you are working on" question was written for.

In fact, there are many similar proposals which keep popping up if you look at godot-extended-libraries/godot-ideas#45. So before making such proposals, it would be better to discuss those use cases first. If people come up with enough of concrete use cases, that's where a potential contributor can write a proposal to fulfil those use cases directly in core, or allow people to overcome limitations via script.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

Go to Settings in this repository and enable "Discussions":

image

If you'd like to see how it looks in action, I've enabled Discussions in Goost for the same reason.

If this enhancement will not be used often, can it be worked around with a few lines of script?

Consider merging #1476, to have discussions maintained "unofficially".

Is there a reason why this should be core and not an add-on in the asset library?

There's no need to wait for Godot!

@Calinou Calinou added the meta label Jan 4, 2021
@Xrayez
Copy link
Contributor Author

Xrayez commented Jan 25, 2021

I digged through some old GIP discussions and stumbled upon this point by karroffel:

#1 (comment)

Pre-GIP

Issues are the "gateway" into GIPs, so people post suggestions and ideas and everyone can freely discuss those.
What lifts an issue into a GIP is a person actually implementing the GIP. There are no specific restrictions on what can be made into a GIP. Since the GIP process is more formal (but not too formal that nobody wants to deal with it), only ideas that spark enough interest would actually motivate somebody to put in the effort of preparing a GIP.

So yeah, I think GitHub Discussions would be definitely the place to discuss things without them being approved, or requiring core developers to evaluate those. It's just that the GitHub's feature appeared only recently, otherwise I think GIP would go this route in the first place.

@Xrayez
Copy link
Contributor Author

Xrayez commented Feb 3, 2021

I'd say that #2230 is a very nice example of discussion-demanding, idea-gathering type of issue. It is non-technical by nature, and as you see, half of the questions are omitted from the RFP in #2230 (which, by the way, violates the first rule for making a proposal in GIP: #1650), which signifies that those kind of proposals should have a different format, and treated accordingly. Otherwise, #2230 does not create a good example of how the proposal should be filled for the community as of now.

Or, if we return back to the discussion in #39 I raised over a year ago, either allow to:

  • make those questions optional;
  • create a separate template to allow problems and ideas to be discussed freely.

But again, this type of thing demands a quite different format in the first place, so that's why I'm suggesting to enable GitHub Discussions.

Again, linking https://github.com/goostengine/goost/discussions so you can see how it works:

image

This way, we can have:

  1. A better way to poll community about features using the same platform: Provide a better platform for polling community about features #2055.
  2. Can be used as a Q&A platform, with best answers (ideas) selected as potential candidates for writing a technical proposal (the aforementioned pre-approval stage).

I hope you agree with this rationale (which is based on both actions and inactions of the maintainers), as it's pretty sound.

P.S. bureaucracy is inevitable (#10), do not resist it, but accept the fact that Godot grows as a project, because it's no longer feasible to rely on Twitter to have discussions about Godot development. I'd rather rely on bureaucratic system than no system at all. 🙂

Just look at https://github.com/rust-lang/rfcs and you'll understand why.

@LennyPhoenix
Copy link

LennyPhoenix commented Mar 31, 2021

I'd love to see this happen, I've found the discussions sections of other repos very helpful so this would be a nice addition for the Godot repo 👍

@Xrayez
Copy link
Contributor Author

Xrayez commented Apr 8, 2021

I forgot to mention that GitHub Discussions allows you to discuss things in threads, something which Issues suffer from when things go off-topic, or you'd like to comment on something specific to clarify things (see proposals like #100).

image

@Xrayez
Copy link
Contributor Author

Xrayez commented May 27, 2021

Great, looks like GitHub added ability to assign labels (alongside categories which can be chosen by users when they create a discussion, contrast to labels):

Here's an example: goostengine/goost#82

image

So, I think migrating some proposals like #2333 or #2738 to discussions while preserving labels would be possible.

@clayjohn
Copy link
Member

clayjohn commented Jun 4, 2021

There was an excellent discussion about how this could be implemented on April 23, 2021. It appears a consensus was reached on what we should do. In this comment I hope to set out actionable steps we can take towards moving proposals into Github Discussions. Much of what I write here is also in the original proposal from Xrayez

Overview

From a high level, the idea is to separate the current proposal process into 2 categories:

  1. Ideas/feature requests/discussions: these go to the Discussion page
  2. Technical implementation proposals: these follow the current proposal structure

Discussions

Discussions are the best place to determine if a feature is desired or can work with the engine. Xrayez highlights above how many features Github Discussions exposes to make discussion easier. Importantly Discussions allow voting which makes more popular proposals naturally rise to the top.

Discussions will not be heavily moderated. They, of, course will be monitored to ensure that people are following the community code of conduct (avoiding abusive behaviour etc.), but there will be no expectation that "core developers" will engage with your feature proposals. This format will hopefully encourage free and open discussion while minimizing the perceived obligation on "core contributors" to actively engage with every proposal.

Discussions will be the go to place for:

  1. feature requests
  2. feature proposals
  3. discussing ideas
  4. gathering interest in an idea

Proposals

Proposals will be reserved for features that a writer is interested in adding and of which the writer is looking to discuss the technical implementation. They will be more closely scrutinized by other developers and may be closed if they are low quality. The expectation for proposals is that:

  1. they are well thought out
  2. there is community interest for the feature
  3. they are linked to a clear use case and are not speculative
  4. the writer is interested in adding the feature or mentoring someone else to add it

The guidelines will be similar to the current proposal guidelines, but they will actually be enforced. Ideally, this will result in a much smaller number of proposals which means that developers will engage more actively in proposals.

Proposals will be the go to place for:

  1. Technical discussions

What is next

If others agree on this 2-step process, then we need to:

  1. Enable Github Discussions on this repo (as Xrayez shows above)
  2. Write a blog post communicating the new process and warning users that issues in this repo will be converted to discussions (that is possible right @Xrayez?) If they can't be converted then they will be closed and interested users can copy and paste into discussions.
  3. Start enforcing proposal rules (i.e. close/move proposals that dont meet rules) and point new proposal writers to Discussions

Future goals:

  1. Regular proposal review meetings (post 4.0 goal, goes together with our long term plan for team meetings)

@Xrayez
Copy link
Contributor Author

Xrayez commented Jun 4, 2021

2. Write a blog post communicating the new process and warning users that issues in this repo will be converted to discussions (that is possible right @Xrayez?) If they can't be converted then they will be closed and interested users can copy and paste into discussions.

Yes. Existing proposals that don't match the criteria of "technical discussions" and "low-effort" proposals can be easily converted into a discussion:

image

Existing labels will also be preserved.

@xix-xeaon
Copy link

What's going on with this?

As Discussions it will be much more open and friendly towards the community, which is important in of itself. But also, with over two thousand proposal-issues here now we clearly need more open space for feature-requests and discussions as well as clear ways of conveying/surveying what the community wants, which the more easily accessible upvote-function Discussions provides, as well as the Poll-function which should supposedly be released soon.

@YuriSizov
Copy link
Contributor

YuriSizov commented Jan 8, 2022

We are mostly positive with doing this, but we would need to organize a move to them, which takes effort that we haven't been able to make time for. Basically, instead of just opening them, it would make sense to move some proposals there, and to decide how we are going to promote the new system so people know where to post. And ultimately, if we do this, proposals would be moderated much stricter, closer to their original idea, and we need to decide on rules for that.

We also discuss different labels to give the proposal process more direction. Like distinct statuses indicating steps and approval state. Overall, we have grander plans and this seems like a part of them, but only a part nonetheless, thus requiring more work on everything else before we commit. Opening discussions on their own without a plan will lead to a situation where we won't be able to organize it after the fact (see what happened with proposals themselves, compared to how they were envisioned).

@YuriSizov
Copy link
Contributor

YuriSizov commented Feb 16, 2022

Discussions are now open: https://github.com/godotengine/godot-proposals/discussions
Feel free to start open-ended conversations there regarding engine improvements. At the same time, as mentioned before, we will be making proposal submission requirements stricter, as originally intended. We'll be slowly updating and closing existing proposals, suggesting to move to Discussions in the upcoming weeks.

The readme of this repository has been updated to explain everything a bit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants